在sql server中找到任何更新或未更新的字段

时间:2013-03-19 13:09:15

标签: sql-server triggers

如果我们收到的更新语句没有检查where子句中的值是否已更改,那么在触发器中忽略该更新的不同方法是什么?

我知道我们可以对每个单独的字段进行比较(也处理ISNULL方面),但是如果它是一个包含50多个字段的表,那么有更快/更容易的方法吗?

注意:我想在日志中保存每个事件以获取更新的字段。例如,我有50个字段,其中一个字段已更新(对于单行而不是整个表),那么我只想保存更新的字段字段旧值和日志中的新值。

先谢谢,RAHUL

1 个答案:

答案 0 :(得分:0)

如果这更多是关于记录对表的更改,则更简单的解决方案可能是使用更改数据捕获(CDC)表。

每次对表进行更改时,都会将一行写入CDC表。然后,您可以在CDC表上编写查询,以便只返回已更改的数据。

有关CDC表的更多信息,请访问: http://msdn.microsoft.com/en-us/library/bb522489(v=sql.105).aspx