Heim >Datenbank >MySQL-Tutorial >Wie suche ich in SQL Server nach gespeicherten Prozeduren, die bestimmten Text einschließlich Sonderzeichen enthalten?
Suchen gespeicherter Prozeduren, die bestimmten Text enthalten, einschließlich Sonderzeichen
Die Suche nach bestimmtem Text in gespeicherten SQL Server-Prozeduren kann schwierig sein, insbesondere wenn dieser Text Sonderzeichen wie eckige Klammern enthält.
Die Herausforderung:
Stellen Sie sich vor, Sie müssten alle gespeicherten Prozeduren finden, die die Zeichenfolge „[ABD]“ enthalten. Ein naiver Ansatz mit LIKE
könnte so aussehen:
<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>
Dies schlägt fehl, weil LIKE
eckige Klammern als Platzhalterzeichen interpretiert, wodurch die Suche ungenau wird.
Die Lösung:
Der Schlüssel liegt darin, die Sonderzeichen zu maskieren. SQL Server verwendet den Backslash () als Escape-Zeichen. 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 weist LIKE
an, jedes Zeichen, dem ein Backslash vorangestellt ist, als Literalzeichen und nicht als Platzhalter zu behandeln. Dadurch wird sichergestellt, dass die Suche genau gespeicherte Prozeduren identifiziert, die genau die Zeichenfolge „[ABD]“ enthalten. Diese Methode verarbeitet andere Sonderzeichen innerhalb gespeicherter Prozedurdefinitionen effektiv und liefert genaue Suchergebnisse.
Das obige ist der detaillierte Inhalt vonWie suche ich in SQL Server nach gespeicherten Prozeduren, die bestimmten Text einschließlich Sonderzeichen enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!