如何在数据库中查询出所有有触发器的表,求代码和说明?
我的数据库中有一千多张表。需要查询出哪些表有触发器,有多少。以及哪些表没有触发器。求详细说明和代码。...
我的数据库中有一千多张表。
需要查询出哪些表有触发器,有多少。以及哪些表没有触发器。
求详细说明和代码。 展开
需要查询出哪些表有触发器,有多少。以及哪些表没有触发器。
求详细说明和代码。 展开
3个回答
展开全部
select name from sysobjects where xtype='TR' --所有触发器名称
select name from sysobjects where xtype='P' --所有存储过程
select name from sysobjects where xtype='V' --所有视图
select name from sysobjects where xtype='U' --所有表
全部禁用:Alter table t1 disable trigger all;
全部生效:Alter table t1 enable trigger all;
单个禁用:Alter table t1 disable trigger 触发器名;
查出指定TR的内容:sp_helptext 't_test'
查出所有非系统数据库并列出:
select * from sysdatabases where dbid>4
查出某表中所有字段名与字段类型:
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('employee') and a.xtype=b.xtype!
select name from sysobjects where xtype='P' --所有存储过程
select name from sysobjects where xtype='V' --所有视图
select name from sysobjects where xtype='U' --所有表
全部禁用:Alter table t1 disable trigger all;
全部生效:Alter table t1 enable trigger all;
单个禁用:Alter table t1 disable trigger 触发器名;
查出指定TR的内容:sp_helptext 't_test'
查出所有非系统数据库并列出:
select * from sysdatabases where dbid>4
查出某表中所有字段名与字段类型:
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('employee') and a.xtype=b.xtype!
展开全部
select name 表格名称 from sysobjects where xtype='U' AND id in(select parent_obj from sysobjects where xtype='TR')------查询有触发器的表
select name 表格名称 from sysobjects where xtype='U' AND id NOT in(select parent_obj from sysobjects where xtype='TR')------查询没有触发器的表
有多少触发器用下面的就行:
select a.name 数据表名,sysobjects.name as 触发器名,sysobjects.crdate as 创建时间 from sysobjects
left join (select *from sysobjects where xtype='U')as a on sysobjects.parent_obj=a.id
where sysobjects.xtype='TR'
select name 表格名称 from sysobjects where xtype='U' AND id NOT in(select parent_obj from sysobjects where xtype='TR')------查询没有触发器的表
有多少触发器用下面的就行:
select a.name 数据表名,sysobjects.name as 触发器名,sysobjects.crdate as 创建时间 from sysobjects
left join (select *from sysobjects where xtype='U')as a on sysobjects.parent_obj=a.id
where sysobjects.xtype='TR'
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-24
展开全部
Oracle 数据库的话:
SQL> SELECT
2 trigger_name,
3 status
4 FROM
5 user_triggers
6 WHERE
7 table_name='TEST_TRIGGER_TABLE';
TRIGGER_NAME STATUS
------------------------------------------------------------ ----------------
BEFOREALLTEST ENABLED
BEFOREALLTEST2 ENABLED
SQL Server 的话
select
tri.name AS TriggerName,
tri.is_disabled AS IsDisable,
tri.is_instead_of_trigger AS IsInsteadOfTrigger,
c.text AS CreateTriggerSQL
from
sys.triggers tri LEFT OUTER JOIN
dbo.syscomments c ON tri.object_id = c.id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询