我有一个非常标准的脚本,它使用合并功能来插入、更新和删除记录。但是,我在将已删除的结果输出到审计类型表时遇到了很多麻烦。当我对一个干净的目标表运行该过程时,我不知何故最终在审计表中得到了所有空值,尽管事实上没有任何内容被删除(此时只插入到非审计表中,这确实发生了)。在相同的条件下并针对相同的干净目标表,如果我删除:
OUTPUT deleted.Column1, deleted.Column2 INTO Table_Audit (Column1, Column2)
并将其替换为:
OUTPUT $action, Inserted.*, Deleted.*
我看到实际上并没有删除任何内容,考虑到源表和目标表在两次运行中都相同并且合并谓词保持不变,这很奇怪。如我们所料,第二条语句的 action 列中的所有记录都是插入的。从字面上看,唯一不同的是我刚才提到的。关于可能发生什么的任何想法?