服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - sqlserver中查找所有包含了某个文本的存储过程

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

2019-11-24 16:41MSSQL教程网 Sql Server

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

上图说明吧。
sqlserver中查找所有包含了某个文本的存储过程
上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了) 
sqlserver中查找所有包含了某个文本的存储过程
上图通过sqlserver 图形管理器自带的功能查看依赖于mup_GetA的对象。 
sqlserver中查找所有包含了某个文本的存储过程
结果有点雷人,居然没有列出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替换成你要查找的内容 

完毕

延伸 · 阅读

精彩推荐