Gestion des crochets dans les recherches de texte de procédure stockée SQL Server
La recherche de texte dans les procédures stockées SQL Server, à l'aide de sys.sql_modules
et sys.objects
, peut être délicate lorsqu'il s'agit de crochets. Les recherches standard ne parviennent souvent pas à trouver correctement le texte entre crochets.
La solution est d'échapper aux crochets en utilisant la clause ESCAPE
avec l'opérateur LIKE
. Cela indique à SQL Server de traiter la barre oblique inverse comme un caractère d'échappement, empêchant ainsi les crochets d'être interprétés comme des caractères génériques.
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 ''
signifie qu'une barre oblique inverse () précédant un crochet traitera le crochet comme un caractère littéral, garantissant une correspondance précise du texte entre crochets "[ABD]". Sans s'échapper, les crochets seraient interprétés comme des caractères spéciaux, conduisant à des résultats de recherche incorrects.
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!