0

我的数据库中有超过 1000 个存储过程。我有一些特定模块的存储过程列表。我需要查找特定存储过程中使用的表列表。为此,我必须打开所有存储过程并手动获取使用的表列表。我需要一些 Trans SQL 查询来完成这项工作。

4

1 回答 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 回答