Я добавляю внешний ключ в таблицу и удаляю все строки, которые нарушают FK, копируя их в таблицу ModifiedTable_invalid. Как часть сценария, у меня есть следующая команда MERGE:
MERGE ModifiedTable t1
USING TargetTable tt
ON t1.JoinColumn = tt.JoinColumn
WHEN MATCHED THEN
UPDATE SET t1.FkColumn = tt.FkSource
WHEN NOT MATCHED BY SOURCE THEN DELETE
OUTPUT DELETED.* INTO ModifiedTable_invalid;
Однако эта команда, похоже, вставляет КАЖДУЮ строку из ModifiedTable в ModifiedTable_invalid, а не только те, которые были удалены командой MERGE. Что происходит, и как мне заставить его поместить только удаленные строки в ModifiedTable_invalid?
источник
DELETED.*
?