所以我有一个简单的更新触发器,它将删除的数据复制到另一个格式相同的表中,并添加了修改日期。它工作得很好,但是当执行更新时,应用程序代码中有很多情况并没有实际更改任何值。
我正试图避免在审计表中提取这些内容。
有没有人对我如何解决这个问题有任何建议,没有更改我的应用程序代码。可能是对行进行简单比较以检查更改?
由于
答案 0 :(得分:2)
不幸的是,它是触发器中的逐列比较
编辑:如果不保证100%的准确率,您可以使用CHECKSUM(*)。 HashBytes更好
答案 1 :(得分:0)
这个article details的作者是一个有趣的解决方案,在某些情况下会起作用。他从当前和已删除的表FOR XML中选择,通过HashBytes()运行它们并对结果进行比较。
这篇文章包含精心编写的资料。我能够快速修改它以便在我的架构中使用。我放弃了HashBytes()转换,只是比较了XML值,以便解决HashBytes()的潜在问题。我轻轻地测试了解决方案,它似乎按预期工作。
文章的评论部分中还有一个关于该主题的另一篇有趣文章的链接。