Heim >Datenbank >MySQL-Tutorial >Wie suche ich in SQL Server nach gespeicherten Prozeduren, die bestimmten Text einschließlich Sonderzeichen enthalten?

Wie suche ich in SQL Server nach gespeicherten Prozeduren, die bestimmten Text einschließlich Sonderzeichen enthalten?

Linda Hamilton
Linda HamiltonOriginal
2025-01-07 16:34:40475Durchsuche

How to Search for Stored Procedures Containing Specific Text Including Special Characters in SQL Server?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn