我有一个触发器,但它总是被禁用。它可以连续运行几个月而不会出现问题,然后就被禁用了。为什么?
知道以下信息会很酷:当它被禁用时,我是否可以记录?是什么禁用了它?是否有办法设置已禁用的电子邮件警报?
答案1
一定有人禁用了它。您可以设置在后台运行的 SQL 跟踪来查找 ALTER TRIGGER 命令。
如果您使用的是 SQL Server 2005 及更高版本,则可以在数据库上放置一个 DDL 触发器来回滚 ALTER 语句,然后记录该命令。
使用 SQL 2000,您所要做的就是运行跟踪。
答案2
取决于其他人可能在你的数据库中指什么……另一种可能性是某人有一份工作或存储过程或一段代码:
Disabling the trigger
Performing an action
Enabling the trigger
(however it fails somewhere before the enable)
-或者-
Disabling the trigger
Performing an action
NOT enabling the trigger
您可能需要快速搜索您的代码和 sprocs/jobs 来查找触发器的名称,看看是否有人在做这样的事情。