我有一个包含数据的表单。任何更改或插入,这些数据应该在不同的表中更新,如名称,一个表中的工资和地址,另一个表中的邮件ID。
与上面的例子一样,我在两个表中都有几列。
现在我要审核该表。所以我认为我必须为两个表创建一个视图并为视图设置一个触发器。这是正确的吗?。
而且我还需要知道受影响的列。如何获得唯一受影响的列?
请建议我一个解决方案。
谢谢!
答案 0 :(得分:1)
有很多方法可以让系统为您处理所有这些工作 - 取决于您使用的SQL Server版本:
Understanding SQL Server Audit(自SQL Server 2008 R2起)
如果你真的必须自己处理所有的工作,你需要熟悉触发器 - 在Data Points: Exploring SQL Server Triggers中阅读它们。
在触发器代码中,您有两个“伪表”:
Inserted
是包含要插入的值(在INSERT触发器中)或新值(在UPDATE触发器中)的表Deleted
是包含要删除的值(在DELETE触发器中)或旧值(在UPDATE触发器中)的表使用这两个伪表,您可以访问您可能需要的所有数据。