Sto aggiungendo una chiave esterna a una tabella e rimuovendo tutte le righe che violano l'FK, copiandole in una tabella ModifiedTable_invalid. Come parte dello script, ho il seguente comando 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;
Tuttavia, questo comando sembra inserire OGNI riga da ModifiedTable in ModifiedTable_invalid, non solo quelli eliminati dal comando MERGE. Cosa sta succedendo e come ottengo per inserire solo le righe eliminate in ModifiedTable_invalid?
DELETED.*
?