0

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

我知道我们可以对每个单独的字段进行比较(也处理 ISNULL 端),但是如果它是一个有 50 多个字段的表,有没有更快/更简单的方法呢?

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

提前致谢, 拉胡尔

4

1 回答 1

0

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

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

有关 CDC 表的更多信息可在此处获得:http: //msdn.microsoft.com/en-us/library/bb522489 (v=sql.105).aspx

于 2013-03-20T09:16:07.103 回答