如何在数据库中查询出所有有触发器的表,求代码和说明?

我的数据库中有一千多张表。需要查询出哪些表有触发器,有多少。以及哪些表没有触发器。求详细说明和代码。... 我的数据库中有一千多张表。
需要查询出哪些表有触发器,有多少。以及哪些表没有触发器。

求详细说明和代码。
展开
 我来答
du瓶邪
2015-07-04 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2968万
展开全部
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!
cygcyg201061ad7
2013-08-24 · TA获得超过1433个赞
知道小有建树答主
回答量:1086
采纳率:58%
帮助的人:539万
展开全部
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'
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式