MSSQL:查看所有触发器信息的命令
2013-07-16 15:17
120 查看
编写程序,有时或为了偷懒,或为更简单地实现所需功能,使用了触发器。这可是把双刃剑,用得不好,程序出现一些莫名其妙的错误,排查到最后,可能就是触发器造成的。
基本原则是能不用则不用,另一方面,所谓存在即合理,既然存在,总会有使用它的场景。用到了,怎么去管理去监控?一个方法是通过SQL语句,列出所有触发器的信息。
一时也不知道还有哪个系统视图或表可以使用,同时发现SQL Server Management Studio的对象资源管理器中,可以看出触发器状态(图标不同,禁用状态的图标右下角多出一个红色的小箭头)。很自然想到利用SQL Server Profiler捕获语句,这招真是屡试不爽,果然如我所愿,找到sys.triggers这个视图,状态问题,顺利解决。
基本原则是能不用则不用,另一方面,所谓存在即合理,既然存在,总会有使用它的场景。用到了,怎么去管理去监控?一个方法是通过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这个视图,状态问题,顺利解决。
相关文章推荐
- MSSQL:查看所有触发器信息的命令
- SqlServer 查看所有触发器信息的命令
- 查看SQL-Server数据库所有触发器信息
- 一个查看MSSQL数据库中所有表信息的SQL语句
- [置顶]一个查看MSSQL数据库中所有表信息的SQL语句
- 一个查看MSSQL数据库中所有表信息的SQL语句
- T-SQL系列之查看所有数据库大小、恢复模式等信息(MSSQL)
- [MSSQL] - (命令)列出所有表.字段名.主键.类型.长度.小数位数等信息
- 一个查看MSSQL数据库中所有表信息的SQL语句
- linux 查看cpu相关信息命令
- RAC维护手记08-ASM磁盘组信息查看常用命令
- Linux who(查看用户登录信息)命令
- 查看tar.gz包内的文件信息命令
- CentOS查看系统信息命令和方法
- 用cmd查看win8版本 激活等详细信息命令
- Linux系统信息查看命令(转载)
- sqlite查看所有表名、判断表是否存在,字段名及字段信息
- mysql查看所有存储过程,函数,视图,触发器,表
- linux 常用的系统信息查看命令
- 常用查看Linux系统信息命令