Вставить удаленные элементы во временную таблицу после 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
только вставляет, обновляет или удаляет