テーブルに外部キーを追加し、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;
ただし、このコマンドは、MERGEコマンドによって削除された行だけでなく、ModifiedTableからModifiedTable_invalidにすべての行を挿入しているようです。何が起こっているのですか?削除された行のみをModifiedTable_invalidに配置するにはどうすればよいですか?
DELETED.*
ですか?