如何查找所有包含了某个文本的存储过程

背景:我想查找所有使用了sp_a 的存储过程。右击sp_a->view dependencies-> 选择 view objects that depend on [sp_a] 你会发现,有时候结果不能够全部列出来,不能够找到所有使用了sp_a的其他存储过程。上图说明吧。

如何查找所有包含了某个文本的存储过程_第1张图片
 

上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了)

 

 如何查找所有包含了某个文本的存储过程_第2张图片

 上图通过sqlserver 图形管理器自带的功能查看依赖于mup_GetA的对象。

 

如何查找所有包含了某个文本的存储过程_第3张图片
 

 结果有点雷人,居然没有列出mup_GetB 来(我使用的是sql server 2005)

 

下面是解决方法

方法1:

打开数据库管理界面->右击数据库->tasks->Generate Scripts->.....

导出所有存储过程到文件中,然后ctrl+F查找

方法2:

SELECT  ROUTINE_NAME, ROUTINE_DEFINITION 
    
FROM  INFORMATION_SCHEMA.ROUTINES 
    
WHERE  ROUTINE_DEFINITION  LIKE   ' %text% '  
    
AND  ROUTINE_TYPE = ' PROCEDURE '

将text替换成你要查找的内容

方法3:

select  name

from  sysobjects o, syscomments s

where  o.id  =  s.id

and   text   like   ' %text% '

and  o.xtype  =   ' P '

将text替换成你要查找的内容


完毕

 

 

转载于:https://www.cnblogs.com/windfighter/archive/2010/05/25/1743775.html

你可能感兴趣的:(如何查找所有包含了某个文本的存储过程)