3

我有一个非常标准的脚本,它使用合并功能来插入、更新和删除记录。但是,我在将已删除的结果输出到审计类型表时遇到了很多麻烦。当我对一个干净的目标表运行该过程时,我不知何故最终在审计表中得到了所有空值,尽管事实上没有任何内容被删除(此时只插入到非审计表中,这确实发生了)。在相同的条件下并针对相同的干净目标表,如果我删除:

OUTPUT deleted.Column1, deleted.Column2 INTO Table_Audit (Column1, Column2)

并将其替换为:

OUTPUT $action, Inserted.*, Deleted.*

我看到实际上并没有删除任何内容,考虑到源表和目标表在两次运行中都相同并且合并谓词保持不变,这很奇怪。如我们所料,第二条语句的 action 列中的所有记录都是插入的。从字面上看,唯一不同的是我刚才提到的。关于可能发生什么的任何想法?

4

1 回答 1

3

看一下示例 K

将您的合并语句放在针对您的审计表的插入语句的子查询中。确保其中一列是$action并过滤要在外部 where 子句中插入的值以仅插入已删除的行。

于 2012-09-26T19:51:03.007 回答