我的数据库中有超过1000个存储过程。我有一些存储过程列表对于特定模块。我需要找到特定存储过程中使用的表的列表。为此,我必须打开所有存储过程并手动获取所使用的表的列表。我需要一些Trans SQL查询来完成这项工作。
答案 0 :(得分:1)
最后修改了代码..
;WITH stored_procedures AS
(
SELECT
o.name AS proc_name, oo.name AS table_name,
ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name)AS row
FROM sysdepends d
INNER JOIN sysobjects o ON o.id=d.id
INNER JOIN sysobjects oo ON oo.id=d.depid
WHERE o.xtype = 'P'
)
SELECT proc_name, table_name FROM stored_procedures
WHERE row = 1 and proc_name in('sp1','sp2','sp3')
ORDER BY proc_name,table_name