有没有办法确定任何给定表上的触发器是否影响另一个特定的表?
我的实际问题是从表中删除行,我相信它是从另一个表上的触发器发生的。我需要找到这个“其他表”(有几百个表格)。
提前谢谢!问候/ Snedker
答案 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进入底层。