【发布时间】:2017-05-26 04:40:48
【问题描述】:
我想在我的数据库中的每个表上创建一个触发器,它将已删除数据的副本记录到一个“审核”表中,然后我可以引用该表。
我环顾四周,但由于列定义不同,似乎找不到将其全部插入单个表的方法。
非常感谢任何帮助。
谢谢
【问题讨论】:
-
Change Data Capture 可能是更好的方法。
-
很遗憾,我无法做到这一点,因为我们只使用标准版本的 SQL Server,并且仅在 Enterprise、Developer 和 Enterprise Evaluation 版本中可用
-
@DaRoGa 一种方法可能是创建一个字符串,然后您可以将其保存到数据库。该字符串的格式可以类似于 {columnname: } : Oldvalue |NewValue {chnaged by :} currentuser name 。我在我的一个应用程序中实现了这一点,但需要在每个表触发器上单独完成。如果您愿意,我可以共享一个演示触发器,如果您可以使用这种方法,我的触发器是更新触发器,因此我可以获得新旧值。
-
如果你能分享那就太好了。这听起来是解决我的问题的合适方法
-
@DaRoGa : 示例触发器的粘贴代码。看看如果你有任何问题让我知道我很乐意提供帮助。请不要我有更新触发器,但您可以对已删除的触发器有相同的逻辑,希望对您有所帮助。
标签: sql-server triggers audit