通过在SQL Server Management Studio 2008中搜索所有存储过程来查找字符串

时间:2011-03-23 14:16:56

标签: sql-server ssms

有没有办法在SQL Server Management Studio中的所有存储过程中搜索字符串?

4 个答案:

答案 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)