1. ホーム
  2. sql

[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する

2022-03-16 19:12:18

質問

データベースのすべてのストアドプロシージャから、あるテキストを検索したいのですが。以下のようなSQLを使用します。

SELECT DISTINCT
       o.name AS Object_Name,
       o.type_desc
FROM sys.sql_modules m
       INNER JOIN
       sys.objects o
         ON m.object_id = o.object_id
WHERE m.definition Like '%[ABD]%';

を検索したい [ABD] を角括弧を含むすべてのストアドプロシージャで使用することができますが、適切な結果を得ることができません。これを実現するには、どのようにクエリを変更すればよいでしょうか。

解決方法は?

角括弧を解除する。

...
WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'

この場合、角括弧はワイルドカードとしてではなく、文字列リテラルとして扱われます。