Вставить удаленные элементы во временную таблицу после MERGE

Простой запрос по предложению INTO. Когда я пытаюсь выполнить приведенный ниже оператор, элементы помещаются в CustomersBackup2013 независимо от того, существует таблица или нет.

SELECT *
INTO CustomersBackup2013
FROM Customers;

Тем не менее, когда я пытаюсь использовать предложение в MERGE, как

MERGE TargetTable tt
USING SyncTable st on <condition>
.
.
WHEN Not MATCHED BY SOURCE
DELETE
OUTPUT deleted.* INTO #Sometemptable;

Я получаю сообщение об ошибке с неверным именем объекта "#Sometemptable"

Разве не предполагается создать таблицу, если она не существует? Есть ли что-то, что я делаю не так.

Можно ли как-то изменить это предложение, чтобы помещать элементы в #Sometemptable?

2 ответа

Нет, таблица должна существовать для output оговорка к работе.

Сначала создайте таблицу #temp, а затем вы сможете вывести в нее удаленные значения. Столбцы во временной таблице должны соответствовать столбцам из выходных данных по порядковому номеру и типу.

select into table создает таблицу, если требуется. это очень похоже на оракула create table as select, смотри здесь выбрать в таблицу

merge только вставляет, обновляет или удаляет

Другие вопросы по тегам