【问题标题】:SQL Server: check whether a Trigger is Enabled or Disabled?SQL Server:检查触发器是启用还是禁用?
【发布时间】:2011-12-29 12:46:27
【问题描述】:

我们如何查看在 SQL Server 2008 中启用或禁用了哪个触发器?

【问题讨论】:

    标签: sql-server sql-server-2008 tsql triggers


    【解决方案1】:

    使用sys.triggers

    SELECT name, is_disabled FROM sys.triggers
    

    【讨论】:

    • 谢谢!这是工作。所以如果 is_disabled = 0 表示触发器已启用,is_disabled = 1 表示禁用我对吗?
    • 如果需要在禁用特定触发器时执行操作,可以使用:if exists (SELECT name, is_disabled FROM sys.triggers where name ='MyTriggerName' and is_disabled=1) /*执行操作 */
    【解决方案2】:

    在大型数据库中,您通常不知道触发器所在的表。

    SELECT OBJECT_NAME(parent_id) [table_name],[name] [trigger_name],is_disabled
    FROM sys.triggers 
    

    【讨论】:

      【解决方案3】:

      触发器的描述状态帮助您清楚地准备好状态。同时排除与用户表无关的触发器。

      检查以下代码:

      SELECT OBJECT_NAME(parent_id) [Table_Name],[name] [Trigger_Name],
      Case When is_disabled=0 then 'Enabled' Else 'Disabled' End [Trigger_Status], is_disabled
      FROM sys.triggers 
      where OBJECT_NAME(parent_id) is not null 
      

      【讨论】:

        猜你喜欢
        • 2018-09-08
        • 2012-03-12
        • 2012-11-06
        • 2014-08-16
        • 1970-01-01
        • 2013-03-25
        • 2020-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多