SQL Update触发器并不总是更新

时间:2010-11-25 10:27:25

标签: sql triggers

所以我有一个简单的更新触发器,它将删除的数据复制到另一个格式相同的表中,并添加了修改日期。它工作得很好,但是当执行更新时,应用程序代码中有很多情况并没有实际更改任何值。

我正试图避免在审计表中提取这些内容。

有没有人对我如何解决这个问题有任何建议,没有更改我的应用程序代码。可能是对行进行简单比较以检查更改?

由于

2 个答案:

答案 0 :(得分:2)

不幸的是,它是触发器中的逐列比较

编辑:如果不保证100%的准确率,您可以使用CHECKSUM(*)HashBytes更好

答案 1 :(得分:0)

这个article details的作者是一个有趣的解决方案,在某些情况下会起作用。他从当前和已删除的表FOR XML中选择,通过HashBytes()运行它们并对结果进行比较。

这篇文章包含精心编写的资料。我能够快速修改它以便在我的架构中使用。我放弃了HashBytes()转换,只是比较了XML值,以便解决HashBytes()的潜在问题。我轻轻地测试了解决方案,它似乎按预期工作。

文章的评论部分中还有一个关于该主题的另一篇有趣文章的链接。