我的数据库中有一个包含100列的表。我想创建一个触发器来审核每个更新操作的修改。
我能想到的是为所有列创建update子句,但它们都是类似的脚本。那么有没有优雅的方法呢?
答案 0 :(得分:3)
更新
CDC提供对所有变更细节的跟踪。自SQL Server 2008以来可用。
(更改数据捕获仅适用于SQL Server的Enterprise,Developer和Evaluation版本。 来源:http://msdn.microsoft.com/en-us/library/bb522489.aspx)
更轻量级的解决方案是Change Tracking(同步框架),一个code4life mentioned before,自SQL Server 2005以来可用。
UPDATE2:
相关问题(有很多子链接):
答案 1 :(得分:1)
在MSDN上有这个资源,你可能会觉得有用:
Tracking Changes in the Server Database (including SQL Server 2008)
我不确定你是否在使用SQL Server 2008。
答案 2 :(得分:1)
代码生成?
您是否看过http://autoaudit.codeplex.com/使用的技术?
答案 3 :(得分:0)
理论上,您可以使用1个触发器并检查COLUMNS_UPDATED()以了解哪些列已更改。 (未经测试) 查看更多here