如何在SSMS中查找含特定关键词且名称以数字结尾的SQL存储过程?
获取符合条件的存储过程列表
直接执行以下SQL语句,即可快速筛选出名称以数字结尾且定义中包含特定关键词的存储过程:
SELECT p.name AS 存储过程名称, m.definition AS 存储过程定义 FROM sys.procedures p INNER JOIN sys.sql_modules m ON p.object_id = m.object_id WHERE -- 匹配名称以数字结尾的存储过程 p.name LIKE '%[0-9]' -- 替换成你需要查找的特定关键词(比如错误关联的表名、目标WHERE子句内容) AND m.definition LIKE '%你的特定关键词%' ORDER BY p.name;
关键说明
sys.procedures:SQL Server系统视图,存储所有存储过程的基础元数据。sys.sql_modules:存储存储过程的完整定义文本,用于匹配关键词。p.name LIKE '%[0-9]':通过通配符[0-9]精准匹配名称最后一位为数字的存储过程。m.definition LIKE '%你的特定关键词%':将你的特定关键词替换为实际需要查找的内容(比如错误表名、特定WHERE子句片段),即可筛选出包含该内容的存储过程。
实用扩展
- 若需区分大小写匹配关键词,可添加排序规则:
AND m.definition COLLATE SQL_Latin1_General_CP1_CS_AS LIKE '%区分大小写的关键词%' - 若关键词包含SQL通配符(如
%、_),需用ESCAPE转义:AND m.definition LIKE '%\_带下划线的关键词%' ESCAPE '\' - 在SSMS中可右键结果集→保存结果为,将列表导出为CSV/Excel,方便后续批量处理。
内容的提问来源于stack exchange,提问作者OG_Stack
相关产品推荐
相关产品推荐

