【问题标题】:How to check the log when Trigger is turned On and Off如何在触发器打开和关闭时检查日志
【发布时间】:2014-09-06 06:36:26
【问题描述】:

我想检查我的触发器何时在 SQL Server 2005 数据库中打开和关闭。我创建了一个触发器,只要特定列发生变化,它就会将条目插入新表。但是我收到了客户的投诉,说日志表中的所有更新记录都没有维护日志。

我觉得可能是因为更新某些记录时触发器被关闭了,所以可能没有记录在日志表中。

那么如何查看触发器是打开还是关闭的日志记录呢?

提前致谢。

【问题讨论】:

    标签: sql-server sql-server-2005 triggers


    【解决方案1】:

    不太清楚你在找什么。

    您希望能够在任何给定时间检查触发器是打开还是关闭?在这种情况下,请使用以下语句:

    SELECT is_disabled
    FROM sys.triggers
    WHERE name = 'your-trigger-name-here'
    

    如果您想跟踪给定触发器何时被禁用,您可以编写一个DDL trigger 来捕获ALTER_TRIGGER 事件并记录给定触发器被禁用的人员和时间。

    【讨论】:

    • 感谢您的回答。但是您的查询返回触发器的当前状态。我想在触发器打开或关闭时查看完整的日志以及日期时间。例如我在 9 月 5 日创建了触发器,并在 9 月 7 日关闭并在 9 月 8 日重新打开,sql server 应该向我显示这些触发器状态更改的完整日志记录。
    • @Rahul:这就是我在回复的第二部分中提到的 - 在这种情况下,您需要设置 DDL 触发器 来捕获该信息,然后使用它
    • 谢谢,我会为以后的条目编写触发器,但是有没有办法跟踪触发器状态的先前变化?
    • 不,据我所知。如果你对此感兴趣,你必须自己记录,使用 DDL 触发器。这些事件没有内置的“日志”
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多