在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]%';</code>
但是,此查詢傳回的結果不正確,因為SQL LIKE運算子將方括號解釋為通配符,而不是字面字元。
解:
要在預存程序定義中搜尋字面方括號,您需要在查詢中轉義它們。這可以使用ESCAPE子句實現:
<code class="language-sql">... WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'</code>
ESCAPE子句告訴SQL Server,後面的字元不應解釋為通配符,而應解釋為字面字元。在本例中,反斜線字元()用作轉義字元。
透過使用轉義的方括號,您的查詢現在將準確識別並顯示其定義中包含字串「[ABD]」的預存程序。
以上是如何在 SQL Server 預存程序定義中搜尋文字方括號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!