Estou adicionando uma chave estrangeira a uma tabela e removendo as linhas que violam o FK, copiando-as para uma tabela ModifiedTable_invalid. Como parte do script, tenho o seguinte 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;
No entanto, esse comando parece estar inserindo TODAS as linhas de ModifiedTable em ModifiedTable_invalid, não apenas as excluídas pelo comando MERGE. O que está acontecendo e como faço para colocar apenas as linhas excluídas em ModifiedTable_invalid?
fonte
DELETED.*
?