是否有任何自动方式列出sql server存储过程中的所有依赖项?

时间:2014-02-17 04:45:15

标签: sql-server stored-procedures

我们的数据库中有近1449个存储过程。

是否有任何自动方式列出所有依赖项?

就像我们有存储过程s1,s2,s3,s4,s5

一样
  • s2,s3在s1
  • 中被调用
  • s4在s2中被调用
  • s5在s3中被调用

所以依赖应该看起来像

s1 
-->s2
---->s4
-->s3
---->s5

1 个答案:

答案 0 :(得分:0)

在我看来,您可以将所有SP名称添加到临时表中,

SELECT * FROM sys.procedures

现在,您可以遍历此临时表并找到依赖项,例如

DECLARE @Search varchar(255)
SET @Search='PROCEDURE_NAME'
SELECT DISTINCT o.name AS Object_Name,o.type_desc
    FROM sys.sql_modules m 
    INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%'+@Search+'%'
 ORDER BY 2,1

我不知道它是否会起作用,但你至少可以尝试一下。