Я написал хранимую процедуру для импорта и преобразования данных из одной базы данных в другую. Каждый импорт будет иметь один идентификатор компании и импортировать все данные, относящиеся к этой компании.
Чтобы помочь с шагом преобразования, я использую временные таблицы. В рамках обзора script мне сказали использовать табличные переменные, а не временные таблицы. Рецензент утверждает, что если одновременно запустить два разных импорта, временная таблица будет разделяться и повреждать импорт.
Вопросы:
- Правда ли, что временная таблица будет разделяться, если одновременно запустить два разных импорта?
- Каждый вызов
EXEC
создает новую область?
Вот надуманный пример script.
CREATE PROC [dbo].[ImportCompany]
(
@CompanyId AS INTEGER
)
AS
EXEC [dbo].[ImportAddress] @CompanyId = @CompanyId
--Import other data
CREATE PROC [dbo].[ImportAddress]
(
@CompanyId AS INTEGER
)
AS
CREATE TABLE #Companies (OldAddress NVARCHAR(128), NewAddress NVARCHAR(128))
INSERT INTO #Companies(OldAddress, NewAddress)
SELECT
Address as OldAddress,
'Transformed ' + Address as NewAddress
FROM
[OldDb].[dbo].[Addresses]
WHERE
CompanyId = @CompanyId
--Do stuff with the transformed data
DROP TABLE #Companies
EXEC [dbo].[ImportCompany] @CompanyId = 12345