Saya menambahkan kunci asing ke tabel, dan menghapus setiap baris yang melanggar FK, menyalinnya ke tabel ModifiedTable_invalid. Sebagai bagian dari skrip, saya mendapat perintah MERGE berikut:
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;
Namun, perintah ini tampaknya menyisipkan SETIAP baris dari ModifiedTable ke ModifiedTable_invalid, bukan hanya yang dihapus oleh perintah MERGE. Apa yang terjadi, dan bagaimana cara mendapatkannya agar hanya menempatkan baris yang dihapus di ModifiedTable_invalid?
sumber
DELETED.*
?