Maison >base de données >tutoriel mysql >Comment rechercher des procédures stockées contenant du texte spécifique incluant des caractères spéciaux dans SQL Server ?

Comment rechercher des procédures stockées contenant du texte spécifique incluant des caractères spéciaux dans SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-07 16:34:40534parcourir

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

Recherche de procédures stockées contenant un texte spécifique, y compris des caractères spéciaux

La recherche d'un texte spécifique dans les procédures stockées SQL Server peut être délicate, en particulier lorsque ce texte comprend des caractères spéciaux tels que des crochets.

Le défi :

Imaginez avoir besoin de rechercher toutes les procédures stockées contenant la chaîne "[ABD]". Une approche naïve utilisant LIKE pourrait ressembler à ceci :

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

Cela échoue car LIKE interprète les crochets comme des caractères génériques, ce qui rend la recherche inexacte.

La solution :

La clé est d'échapper aux caractères spéciaux. SQL Server utilise la barre oblique inverse () comme caractère d'échappement. Voici la requête corrigée :

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

La clause ESCAPE '' indique à LIKE de traiter tout caractère précédé d'une barre oblique inverse comme un caractère littéral, et non comme un caractère générique. Cela garantit que la recherche identifie avec précision les procédures stockées contenant la chaîne exacte « [ABD] ». Cette méthode gère efficacement d'autres caractères spéciaux dans les définitions de procédures stockées, fournissant des résultats de recherche précis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn