我有一个存储过程,通过调用一系列其他存储过程,最终从某个表中选择一些数据。我知道这个表的名称,以及存储过程的名称,但是一系列查询太复杂,无法使用SSMS进行跟踪。所以,我想写一个查询来确定这一点。这是我到目前为止所提出的:
SELECT DISTINCT p.name, s.name, t.name
FROM sys.sysdepends AS d
INNER JOIN sys.procedures AS p
ON d.id = p.object_id
INNER JOIN sys.tables AS t ON t.object_id = d.depid
INNER JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
WHERE p.name = 'MySprocName'
AND t.name = 'MyTableName'
但是,这仅适用于直接依赖,而不适用于传递依赖。这可以修改为递归运行,还是找到与其他方法的关系?
编辑:我发现我的问题是重复的,措辞不同。 T-SQL: Show stored procedures related to tables, cyclically。关闭。