2010-07-07 40 views
3

我有一个包含数据的表单。任何更改或插入,这些数据应该更新在两个不同的表中,如姓名,一张表和地址中的工资,另一张表中的邮件编号。在SQL Server中审计两个不同的表

就像上面的例子,我在两个表中都有几列。

现在我想审核表。所以我想我必须为这两个表创建一个视图并为视图设置一个触发器。这是对的吗?。

而且我还需要知道只有受影响的列。如何获得唯一受影响的列?

请给我一个解决方案。

谢谢!

回答

1

有很多方法可以让系统处理所有琐碎的工作适合你 - 这取决于SQL Server版本您正在使用:

如果你真的必须自己处理所有的工作,你需要熟悉触发器 - 在Data Points: Exploring SQL Server Triggers上阅读它们。

内,您的触发代码,你有两个“伪表”:

  • Inserted是表保存插入值(在INSERT触发器)或新的值(一个UPDATE触发器)
  • Deleted是表保存被删除的值(在DELETE触发)或旧值(在UPDATE触发器)

有了这两个伪表,你可以访问你可能需要的所有数据。

+0

什么是BOL?无论如何与此有关吗?我从这个链接得到这个 http://stackoverflow.com/questions/2684293/change-data-capture-or-change-tracking-same-as-traditional-audit-trail-table – Manoj 2010-07-07 10:11:09

+0

@Manoj:BOL =书联机 - 在线SQL Server文档(MSDN Library) – 2010-07-07 11:18:58