У меня есть хранимая процедура, которая работает с большим количеством данных. У меня есть эти данные, вставляемые во временную таблицу. Общий поток событий что-то вроде
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
будут составлять мой первичный ключ.
Обновление: В моем случае я дублирую первичный ключ исходных таблиц. Я знаю, что поля, которые будут составлять мой первичный ключ, всегда будут уникальными. Я не беспокоюсь о неудачной таблице изменения, если я добавлю первичный ключ в конце.
Хотя, кроме этого, мой вопрос все еще остается в силе, если предположить, что оба варианта будут успешными?