SQL Server Management Studioのすべてのストアドプロシージャ内で文字列を検索する方法はありますか?
SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%yourstring%'
RedGateのSQL検索 をご覧ください。これはManagement Studioプラグインであり、無料でダウンロードできます。特定のデータベース内またはインスタンス全体を検索できます。
私はいつもこれを使います。
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%SEARCHSTRING%'
私の場合、特定のテキストまたはキーワードを検索するときはいつでも、スキーマとストアドプロシージャの名前を取得しようとしていました。私が使用し、それが私のために働いているコードは:
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)