Heim >Datenbank >MySQL-Tutorial >Wie suche ich nach literalen eckigen Klammern in Definitionen gespeicherter SQL Server-Prozeduren?

Wie suche ich nach literalen eckigen Klammern in Definitionen gespeicherter SQL Server-Prozeduren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-07 16:22:41691Durchsuche

How to Search for Literal Square Brackets in SQL Server Stored Procedure Definitions?

Suchen Sie nach Text, der eckige Klammern in gespeicherten SQL Server-Prozeduren enthält

Sie möchten alle gespeicherten Prozeduren in der Datenbank finden, die eine bestimmte Textzeichenfolge enthalten, einschließlich der Fälle, in denen die Zeichenfolge in eckige Klammern eingeschlossen ist, haben jedoch Schwierigkeiten. Sie haben die folgende Abfrage verwendet:

<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>

Diese Abfrage gibt jedoch falsche Ergebnisse zurück, da der SQL-LIKE-Operator eckige Klammern als Platzhalterzeichen und nicht als Literalzeichen interpretiert.

Lösung:

Um in einer gespeicherten Prozedurdefinition nach wörtlichen eckigen Klammern zu suchen, müssen Sie diese in der Abfrage maskieren. Dies kann mit der ESCAPE-Klausel erreicht werden:

<code class="language-sql">...
WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'</code>
Die

ESCAPE-Klausel teilt SQL Server mit, dass die folgenden Zeichen nicht als Platzhalter, sondern als Literalzeichen interpretiert werden sollen. In diesem Beispiel wird das Backslash-Zeichen () als Escape-Zeichen verwendet.

Durch die Verwendung von maskierten eckigen Klammern identifiziert und zeigt Ihre Abfrage jetzt genau gespeicherte Prozeduren an, deren Definition die Zeichenfolge „[ABD]“ enthält.

Das obige ist der detaillierte Inhalt vonWie suche ich nach literalen eckigen Klammern in Definitionen gespeicherter SQL Server-Prozeduren?. 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