SQL Server ストアド プロシージャのテキスト検索での角括弧の処理
sys.sql_modules
と sys.objects
を使用して SQL Server ストアド プロシージャ内のテキストを検索する場合、角括弧を扱う場合は注意が必要です。 標準の検索では、括弧で囲まれたテキストを正しく検索できないことがよくあります。
解決策は、ESCAPE
演算子を含む LIKE
句を使用して角括弧をエスケープすることです。 これにより、SQL Server はバックスラッシュをエスケープ文字として扱い、括弧がワイルドカード文字として解釈されるのを防ぎます。
修正されたクエリは次のとおりです:
<code class="language-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\]%' ESCAPE '\';</code>
ESCAPE ''
句は、角括弧の前にあるバックスラッシュ () が角括弧をリテラル文字として扱い、括弧で囲まれたテキスト "[ABD]" の正確な一致を保証することを示します。 エスケープしないと、括弧が特殊文字として解釈され、不正確な検索結果が得られます。
以上がSQL Server ストアド プロシージャでテキストを検索するときに角かっこをエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。