Есть ли способ безопасно запустить SELECT INTO?
У меня есть скрипт, который запускает SELECT INTO в таблицу. Насколько мне известно, нет никаких других процедур, которые могли бы одновременно ссылаться / изменять эту таблицу. Однако иногда я получаю следующую ошибку:
Схема изменилась после создания целевой таблицы. Повторите запрос Select Into.
Что может вызвать эту ошибку и как ее избежать?
Я немного погуглил, и эта ссылка предполагает, что SELECT INTO нельзя безопасно использовать без какой-то сумасшедшей логики try-catch-retry. Это действительно так?
Я использую SQLServer 2012.
1 ответ
Если вы заранее не знаете полей и типов данных, я бы рекомендовал сначала создать таблицу, а затем добавить данные с помощью оператора вставки. В вашей ссылке Дэвид Мутрей предлагает то же самое, вот его пример кода:
CREATE TABLE #TempTableY (ParticipantID INT NOT NULL);
INSERT #TempTableY (ParticipantID)
SELECT ParticipantID
FROM TableX;