确定表是否受任何触发器影响

时间:2011-09-21 10:47:24

标签: sql sql-server triggers dependencies sql-server-2008-r2

有没有办法确定任何给定表上的触发器是否影响另一个特定的表?

我的实际问题是从表中删除行,我相信它是从另一个表上的触发器发生的。我需要找到这个“其他表”(有几百个表格)。

提前谢谢!

问候/ Snedker

1 个答案:

答案 0 :(得分:4)

您可以使用

SELECT def,
        t.*
FROM sys.triggers t
CROSS APPLY (SELECT OBJECT_DEFINITION(object_id)) C(def)
WHERE def LIKE '%DELETE%' AND def LIKE '%your_table%'

如果找不到任何内容,并且您想扩大搜索范围,可以使用

SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%DELETE%' AND definition LIKE '%your_table%' 

如果仍然无效,并且您认为应用程序可能正在发送查询,则可以使用扩展事件按my answer here进入底层。