如何使用SQL Server 2008查找基于表名搜索的存储过程的名称?

Mic*_*per 18 sql sql-server stored-procedures sql-server-2008

我想找到使用特定表的所有存储过程.数据库中有很多存储过程,因此检查每个过程是不可行的.

有没有办法使用搜索查询,以便我可以找到存储过程?

我试过这段代码:

SELECT distinct so.name
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '% RejectionReason %'
Run Code Online (Sandbox Code Playgroud)

RejectionReason我的表名在哪里,但它显示了所有RejectionReason用作列名的过程,因此不起作用.

Car*_*lla 21

SELECT o.name, o.type_desc, p.name, p.type_desc
FROM sys.sql_dependencies d
INNER JOIN sys.objects o
    ON d.object_id = o.object_id
INNER JOIN sys.objects p
    ON d.referenced_major_id = p.object_id
    AND o.name = 'RejectionReason'
Run Code Online (Sandbox Code Playgroud)

要么

SELECT o.name, t.TABLE_NAME, c.text 
  FROM syscomments c 
  JOIN sysobjects o 
    ON c.id = o.id
  JOIN INFORMATION_SCHEMA.Tables t
    ON  c.text LIKE '%RejectionReason%' 
Run Code Online (Sandbox Code Playgroud)

要么

EXEC sp_depends @objname = N'RejectionReason';
Run Code Online (Sandbox Code Playgroud)

如果这些都没有帮助你查看这个博客:http: //blog.sqlauthority.com/2010/02/04/sql-server-get-the-list-of-object-dependencies-sp_depends-and-information_schema-routines-和-SYS-dm_sql_referencing_entities /