如果没有,是否有办法判断触发器何时被禁用/启用?
随访:
这是一个相当有趣的诊断案例。我只是从外围参与,做诊断的人不是数据库人。
无论如何,他有一个触发器可以将数据从一个表移动到另一个表。他做了一个比较,并没有所有数据都进入第二个表。我说,我是SQL Server的批评者,但我相信他们的触发器在同一个事务中触发。他说,但有些数据表明......如果它只是被禁用,那么什么都不应该成功。真正。所以我说也许有人正在启用和禁用触发器。因此问题。
但真正发生的事情是有人永久禁用触发器并将代码复制到设置为在特定时间运行的sproc中。
正确的取证测试应该是查看第二个表的依赖关系,看看还有什么用它。这会显示肿瘤的情况......(我一直在观察很多House次重播,可以告诉你。)
答案 0 :(得分:1)
没有审计,尽管有一家名为Lumigent的公司提供了一个产品“Audit DB”,它将为SQL Server进行DDL审核(等等)。
您可以在sysobjects表中查找crdate,它将告诉您何时创建对象。
答案 1 :(得分:0)
你的问题与兰迪沃尔特斯在简单谈话中所写的问题非常相似
http://www.simple-talk.com/sql/database-administration/dml-trigger-status-alerts/
我怀疑它会有所帮助