SQL Server - 创建为数据库中的所有表运行的单个触发器

Sun*_*oot 6 sql t-sql sql-server triggers sql-server-2005

我正在尝试在SQL Server 2005中创建一个在INSERT,UPDATE和DELETE上运行的触发器,但是对于数据库中的所有表(用于审计目的).是否有可能做到这一点?

目前,我们为数据库中的每个表都有单独的触发器,因为它们都做同样的事情,所以我希望将它们合并为一个触发器.

我知道可以创建数据库触发器,但我可以挂钩的唯一事件似乎是对表,sprocs等的模式更改,但不是对记录的插入和更新,除非我遗漏了什么?

Lee*_*ley 8

SQL中不存在通用表触发器,因此您需要遍历每个表(INFORMATION_SCHEMA.Tables)并使用动态SQL为每个表创建触发器.(或者提出另一个简单的过程来为每个表创建触发器.)