我有一个使用合并功能来插入、更新和删除记录的标准脚本。然而,我在将已删除的结果输出到审计类型表时遇到了很多问题。当我对干净的目标表运行该过程时,尽管没有删除任何内容(此时仅向非审计表插入,这确实如预期发生),但在审计表中出现了所有的空值。在相同条件下,针对相同的干净目标表,如果我删除以下内容:
OUTPUT deleted.Column1, deleted.Column2 INTO Table_Audit (Column1, Column2)
并将其替换为:
OUTPUT $action, Inserted.*, Deleted.*
我看到实际上没有任何被删除的内容,这很奇怪,因为源表和目标表在两次运行中都是相同的,合并谓词也保持不变。第二个语句中操作列的所有记录都是插入记录,正如我们所期望的那样。唯一不同的是上面我刚提到的东西。你有什么想法吗?