web-dev-qa-db-ja.com

SQL Server Management Studio 2008ですべてのストアドプロシージャを検索して文字列を検索する

SQL Server Management Studioのすべてのストアドプロシージャ内で文字列を検索する方法はありますか?

43
dev.e.loper
SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%yourstring%'
75
Lamak

RedGateのSQL検索 をご覧ください。これはManagement Studioプラグインであり、無料でダウンロードできます。特定のデータベース内またはインスタンス全体を検索できます。

22
squillman

私はいつもこれを使います。

SELECT Name
 FROM sys.procedures
 WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%SEARCHSTRING%'
16
Mike Mengell

私の場合、特定のテキストまたはキーワードを検索するときはいつでも、スキーマとストアドプロシージャの名前を取得しようとしていました。私が使用し、それが私のために働いているコードは:

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)
3
Ahmed Ali