如何查找与SQL Server相关的所有触发器?

ar.*_*gin 44 sql-server sql-server-2008

我在SQL Server中为表创建了一个触发器,它对我有用.

我的问题是:如何找到并修改它?

我使用此查询来查找我的触发器:

select * from sys.triggers
Run Code Online (Sandbox Code Playgroud)

这可以找到所有触发器,但是如何打开它并更改触发器?

Buz*_*uzz 49

您只需使用SSMS即可完成此操作.只需转到表名并展开"触发器"节点,即可查看与该表关联的触发器列表.右键单击以修改触发器. 在此输入图像描述


Jig*_*dya 36

select so.name, text
from sysobjects so, syscomments sc
where type = 'TR'
and so.id = sc.id
and text like '%YourTableName%'
Run Code Online (Sandbox Code Playgroud)

这样,您可以列出与给定表关联的所有触发器.

  • 这可能会返回“太多行”,如果 %YoutTableName% 不仅仅代表一个表。示例:**产品** -< **产品**促销>- 促销 (2认同)

Sau*_*abh 12

这可能很有用

SELECT 
 t.name AS TableName,
 tr.name AS TriggerName  
FROM sys.triggers tr
INNER JOIN sys.tables t ON t.object_id = tr.parent_id
WHERE 
t.name in ('TABLE_NAME(S)_GOES_HERE');
Run Code Online (Sandbox Code Playgroud)

这样您只需要插入表的名称,查询将获取您需要的所有触发器


Ana*_*dke 7

select m.definition from sys.all_sql_modules m inner join  sys.triggers t
on m.object_id = t.object_id 
Run Code Online (Sandbox Code Playgroud)

这里只需复制定义并更改触发器.

另外,您可以转到SSMS并展开您的数据库,然后在Programmability下展开Database Triggeres,然后右键单击特定触发器并单击修改,您也可以更改.


小智 6

使用sp_helptrigger查找关联表的触发器列表