我的数据库中有超过 1000 个存储过程。我有一些特定模块的存储过程列表。我需要查找特定存储过程中使用的表列表。为此,我必须打开所有存储过程并手动获取使用的表列表。我需要一些 Trans SQL 查询来完成这项工作。
问问题
5456 次
1 回答
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
于 2013-11-15T05:13:38.750 回答