有没有办法在SQL Server Management Studio中的所有存储过程中搜索字符串?
答案 0 :(得分:70)
SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%yourstring%'
答案 1 :(得分:20)
看看RedGate's SQL Search。它是一个Management Studio插件和免费下载。您可以在给定数据库内或整个实例中进行搜索。
答案 2 :(得分:16)
我总是使用它;
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%SEARCHSTRING%'
答案 3 :(得分:3)
就我而言,每当我搜索特定的文本或关键字时,我都希望获得架构和存储过程的名称。我使用的代码对我有用:
USE [your_DB_name];
GO
SELECT [Scehma]=schema_name(o.schema_id), o.Name
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON o.object_id = m.object_id
WHERE m.definition like '%your keyword%'
GO
结果很简单,如下:
----------------------------------------------
| Schema | Name |
----------------------------------------------
| dbo | stored_procedure_name |
----------------------------------------------
...
and so on (if the keyword exists in more than one stored procedure)