J'ajoute une clé étrangère à une table et je supprime toutes les lignes qui violent le FK, en les copiant dans une table ModifiedTable_invalid. Dans le cadre du script, j'ai la commande MERGE suivante:
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;
Cependant, cette commande semble insérer CHAQUE ligne de ModifiedTable dans ModifiedTable_invalid, pas seulement celles supprimées par la commande MERGE. Que se passe-t-il et comment puis-je obtenir qu'il ne mette que les lignes supprimées dans ModifiedTable_invalid?
DELETED.*
?