• MSSQL:查看所有触发器信息的命令


    转自:http://www.2cto.com/database/201307/228708.html

    编写程序,有时或为了偷懒,或为更简单地实现所需功能,使用了触发器。这可是把双刃剑,用得不好,程序出现一些莫名其妙的错误,排查到最后,可能就是触发器造成的。
     
    基本原则是能不用则不用,另一方面,所谓存在即合理,既然存在,总会有使用它的场景。用到了,怎么去管理去监控?一个方法是通过SQL语句,列出所有触发器的信息。
     
    语句
    SELECT  OBJECT_NAME(a.parent_obj) AS [表名] ,
            a.name AS [触发器名称] ,
            ( CASE WHEN b.is_disabled = 0 THEN '启用'
                   ELSE '禁用'
              END ) AS [状态] ,
            b.create_date AS [创建日期] ,
            b.modify_date AS [修改日期] ,
            c.text AS [触发器语句]
    FROM    sysobjects a
            INNER JOIN sys.triggers b ON b.object_id = a.id
            INNER JOIN syscomments c ON c.id = a.id
    WHERE   a.xtype = 'tr'
    ORDER BY [表名]


    后记
    最开始只要表名、触发器名、触发器语句,很容易就写好语句,后来想把触发器状态也加上,自己没头绪,先网络搜索,竟然没能找到直接可用的信息,有找到针对SQL2000,只是自己早已不使用此版本,那么再一次自力更生吧。
     
    一时也不知道还有哪个系统视图或表可以使用,同时发现SQL Server Management Studio的对象资源管理器中,可以看出触发器状态(图标不同,禁用状态的图标右下角多出一个红色的小箭头)。很自然想到利用SQL Server Profiler捕获语句,这招真是屡试不爽,果然如我所愿,找到sys.triggers这个视图,状态问题,顺利解决。
  • 相关阅读:
    mybatis 源码分析(四)一二级缓存分析
    mybatis 源码分析(三)Executor 详解
    mybatis 源码分析(二)mapper 初始化
    mybatis 源码分析(一)框架结构概览
    Disruptor 详解 二
    Disruptor 详解 一
    JDK源码分析(12)之 ConcurrentHashMap 详解
    并发系列(7)之 ScheduledThreadPoolExecutor 详解
    数据结构系列(6)之 完全二叉堆
    并发系列(6)之 ThreadPoolExecutor 详解
  • 原文地址:https://www.cnblogs.com/apollokk/p/6713824.html
Copyright © 2020-2023  润新知