У меня есть хранимая процедура, которая работает с большим количеством данных. У меня есть эти данные, вставляемые во временную таблицу. Общий поток событий что-то вроде
CREATE #TempTable (
Col1 NUMERIC(18,0) NOT NULL, --This will not be an identity column.
,Col2 INT NOT NULL,
,Col3 BIGINT,
,Col4 VARCHAR(25) NOT NULL,
--Etc...
--
--Create primary key here?
)
INSERT INTO #TempTable
SELECT ...
FROM MyTable
WHERE ...
INSERT INTO #TempTable
SELECT ...
FROM MyTable2
WHERE ...
--
-- ...or create primary key here?
Мой вопрос: когда наилучшее время для создания первичного ключа в моей таблице #TempTable? Я предположил, что я должен создать ограничение / индекс первичного ключа после того, как вставлю все данные, потому что для индекса нужны быть реорганизованным при создании информации первичного ключа. Но я понял, что моё подчеркивающее предположение может быть неверным ...
Если это уместно, используемые мной типы данных реальны. В таблице #TempTable
мой основной ключ будет составлять Col1
и Col4
.
Обновление: В моем случае я дублирую первичный ключ исходных таблиц. Я знаю, что поля, которые будут составлять мой первичный ключ, всегда будут уникальными. Я не беспокоюсь о неудачной таблице изменения, если я добавлю первичный ключ в конце.
Хотя, кроме этого, мой вопрос все еще остается в силе, предполагая, что оба удастся ?
P.S. Извините, если это дубликат. Это достаточно просто, чтобы это могло быть, но я не смог найти ничего подобного.