Tôi đang thêm khóa ngoại vào bảng và xóa bất kỳ hàng nào vi phạm FK, sao chép chúng vào bảng ModifiedTable_invalid. Là một phần của tập lệnh, tôi đã nhận được lệnh MERGE sau:
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;
Tuy nhiên, lệnh này dường như đang chèn MỌI hàng từ ModifiedTable vào ModifiedTable_invalid, không chỉ những lệnh bị xóa bởi lệnh MERGE. Chuyện gì đang xảy ra và làm cách nào để tôi chỉ đặt các hàng đã xóa trong ModifiedTable_invalid?
DELETED.*
?