Maison >base de données >tutoriel mysql >Comment rechercher des crochets littéraux dans les définitions de procédures stockées SQL Server ?
Rechercher du texte contenant des crochets dans les procédures stockées SQL Server
Vous souhaitez rechercher toutes les procédures stockées dans la base de données qui contiennent une chaîne de texte spécifique, y compris les cas où la chaîne est placée entre crochets, mais qui rencontrent des difficultés. Vous avez utilisé la requête suivante :
<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>
Cependant, cette requête renvoie des résultats incorrects car l'opérateur SQL LIKE interprète les crochets comme des caractères génériques plutôt que comme des caractères littéraux.
Solution :
Pour rechercher des crochets littéraux dans une définition de procédure stockée, vous devez les échapper dans la requête. Ceci peut être réalisé en utilisant la clause ESCAPE :
<code class="language-sql">... WHERE m.definition Like '%\[ABD\]%' ESCAPE '\'</code>La clause
ESCAPE indique à SQL Server que les caractères suivants ne doivent pas être interprétés comme des caractères génériques mais comme des caractères littéraux. Dans cet exemple, le caractère barre oblique inverse () est utilisé comme caractère d'échappement.
En utilisant des crochets d'échappement, votre requête identifiera et affichera désormais avec précision les procédures stockées qui contiennent la chaîne "[ABD]" dans leur définition.
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!