如果我们收到的更新语句没有检查where子句中的值是否已更改,那么在触发器中忽略该更新的不同方法是什么?
我知道我们可以对每个单独的字段进行比较(也处理ISNULL方面),但是如果它是一个包含50多个字段的表,那么有更快/更容易的方法吗?
注意:我想在日志中保存每个事件以获取更新的字段。例如,我有50个字段,其中一个字段已更新(对于单行而不是整个表),那么我只想保存更新的字段字段旧值和日志中的新值。
先谢谢,RAHUL
答案 0 :(得分:0)
如果这更多是关于记录对表的更改,则更简单的解决方案可能是使用更改数据捕获(CDC)表。
每次对表进行更改时,都会将一行写入CDC表。然后,您可以在CDC表上编写查询,以便只返回已更改的数据。
有关CDC表的更多信息,请访问: http://msdn.microsoft.com/en-us/library/bb522489(v=sql.105).aspx