【问题标题】:Find details about stopping trigger查找有关停止触发器的详细信息
【发布时间】:2013-09-18 09:30:09
【问题描述】:

也许问题不适合这个地方,但我会尝试:

我在一张桌子上有五个触发器,经过一段时间(大约五个月)后,我意识到其中两个被禁用了。

是否有机会找到停止此触发器的时间?如果手动禁用,谁来执行此操作?

如果问题不属于这里,请告诉我放在哪里。

非常感谢

【问题讨论】:

  • 我不相信你可以回顾性地发现这些信息。可能可以跟踪这些更改,但您必须实施/打开此类跟踪,然后在将来您将能够回答这样的问题。我投票赞成将问题重定向到dba

标签: sql tsql triggers sql-server-2012


【解决方案1】:

这是一个查询,可以为您提供所需的大部分信息,如果您在特定数据库中运行它,它将列出所有已启用触发器的表、触发器的名称、是否禁用或不是,以及上次创建/修改的时间。

SQL 服务器不会记录谁启用/禁用了触发器,我认为如果您需要该信息,您必须设置审核:

SELECT  DB_NAME() AS [Database] ,
        OBJECT_NAME([parent_object_id]) AS [table] ,
        name AS [Trigger] ,
        OBJECTPROPERTY([object_id], 'ExecIsTriggerDisabled') AS [Disabled],
        create_date,
        modify_date
FROM    sys.objects
WHERE   [type] = 'TR'

【讨论】:

  • 该死!我正在写这样的东西,但是我们的互联网断了。你也可以使用sys.triggers
  • sys.triggers 是一个很好的了解,因为它也可以让您区分 DML 和 DDL 触发器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多