sql server 查询某个表的所有触发器名称

查出所有用到某个表的SQL

select   *   from   sysobjects   where   xtype='TR'   
select   *   from   sysobjects   where   xtype='TR'   and   parent_obj=object_id('表名')


xtype   char(2)   对象类型。可以是下列对象类型中的一种:     
  C   =   CHECK   约束   
  D   =   默认值或   DEFAULT   约束   
  F   =   FOREIGN   KEY   约束   
  L   =   日志   
  FN   =   标量函数   
  IF   =   内嵌表函数   
  P   =   存储过程   
  PK   =   PRIMARY   KEY   约束(类型是   K)   
  RF   =   复制筛选存储过程   
  S   =   系统表   
  TF   =   表函数   
  TR   =   触发器   
  U   =   用户表   
  UQ   =   UNIQUE   约束(类型是   K)   
  V   =   视图   
  X   =   扩展存储过程  


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'

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server 中,触发器是一种特殊的存储过程,它会在某个上的特定事件(如插入、更新或删除操作)发生时自动执行。触发器可以用于实施业务规则、执行数据验证或记录日志等。 创建触发器的基本语法如下: ```sql CREATE TRIGGER trigger_name {AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} ON table_name [REFERENCING NEW AS new OLD AS old] [FOR EACH ROW] WHEN (condition) BEGIN -- 触发器执行的语句 END; ``` 其中,`trigger_name` 是触发器名称,`table_name` 是触发器所针对的名。 `AFTER` 或 `INSTEAD OF` 触发器执行的时间,分别示在操作之后和代替操作执行。`INSERT`、`UPDATE` 和 `DELETE` 则指定了触发器所要捕获的事件类型。 `REFERENCING` 子句用于指定在触发器代码中使用的伪 `new` 和 `old`。`FOR EACH ROW` 触发器在每个行级别的操作上都会执行。 最后,`WHEN` 子句用于指定触发器的条件,只有满足条件时才会执行触发器。 例如,以下是一个在 `Orders` 上创建的简单触发器,当有新记录插入时,将记录插入到 `OrderLog` 中: ```sql CREATE TRIGGER tr_Order_Insert ON Orders AFTER INSERT AS BEGIN INSERT INTO OrderLog (OrderId, CustomerId, OrderDate) SELECT OrderId, CustomerId, OrderDate FROM inserted; END; ``` 在上述触发器中,`inserted` 伪插入操作的新行。当有新记录插入到 `Orders` 中时,触发器将会被执行,并将新记录插入到 `OrderLog` 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值