Umgang mit eckigen Klammern in SQL Server-Textsuchen für gespeicherte Prozeduren
Die Suche nach Text in gespeicherten SQL Server-Prozeduren mithilfe von sys.sql_modules
und sys.objects
kann beim Umgang mit eckigen Klammern schwierig sein. Bei Standardsuchen wird der Text in Klammern oft nicht richtig gefunden.
Die Lösung besteht darin, die eckigen Klammern mithilfe der ESCAPE
-Klausel mit dem LIKE
-Operator zu maskieren. Dadurch wird SQL Server angewiesen, den Backslash als Escape-Zeichen zu behandeln, wodurch verhindert wird, dass die Klammern als Platzhalterzeichen interpretiert werden.
Hier ist die korrigierte Abfrage:
<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>
Die ESCAPE ''
-Klausel bedeutet, dass ein Backslash () vor einer eckigen Klammer die Klammer als Literalzeichen behandelt und so eine genaue Übereinstimmung des in Klammern gesetzten Textes „[ABD]“ gewährleistet. Ohne Escape würden die Klammern als Sonderzeichen interpretiert und zu falschen Suchergebnissen führen.
Das obige ist der detaillierte Inhalt vonWie entferne ich eckige Klammern beim Durchsuchen von Text in gespeicherten SQL Server-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!