【发布时间】:2010-07-07 08:12:55
【问题描述】:
我有一个包含数据的表单。任何更改或插入,这些数据都应该在两个不同的表中更新,例如一个表中的姓名、薪水和另一个表中的地址、邮件 ID。
和上面的例子一样,我在两个表中都有几列。
现在我要审核表。所以我想我必须为这两个表创建一个视图并为视图设置一个触发器。对吗?
而且我只需要知道受影响的列。如何获取唯一受影响的列?
请给我一个解决方案。
谢谢!!
【问题讨论】:
标签: sql-server triggers
我有一个包含数据的表单。任何更改或插入,这些数据都应该在两个不同的表中更新,例如一个表中的姓名、薪水和另一个表中的地址、邮件 ID。
和上面的例子一样,我在两个表中都有几列。
现在我要审核表。所以我想我必须为这两个表创建一个视图并为视图设置一个触发器。对吗?
而且我只需要知道受影响的列。如何获取唯一受影响的列?
请给我一个解决方案。
谢谢!!
【问题讨论】:
标签: sql-server triggers
有很多方法可以让系统为您处理所有繁琐的工作 - 取决于您使用的 SQL Server 版本:
Understanding SQL Server Audit(自 SQL Server 2008 R2 起)
如果您确实必须自己处理所有工作,则需要熟悉触发器 - 请在 Data Points: Exploring SQL Server Triggers 中阅读它们。
在您的触发代码中,您有两个“伪表”:
Inserted 是保存正在插入的值(在 INSERT 触发器中)或新值(在 UPDATE 触发器中)的表Deleted 是保存正在删除的值(在 DELETE 触发器中)或旧值(在 UPDATE 触发器中)的表通过这两个伪表,您可以访问您可能需要的所有数据。
【讨论】: