130 votes

Caractère d'échappement dans SQL Server

Je veux utiliser une citation avec un caractère d'échappement. Comment puis-je éviter l'erreur suivante lorsque l'on a un caractère spécial ?

Guillemets non fermés après la chaîne de caractères.

5 votes

Pouvez-vous, s'il vous plaît montrer nous la requête ??

3 votes

3voto

Nayajiv Points 21

Si vous voulez échapper à la saisie de l'utilisateur dans une variable, vous pouvez procéder comme suit dans SQL

  Set @userinput = replace(@userinput,'''','''''')

L'entrée @user sera désormais échappée avec un guillemet simple supplémentaire pour chaque occurrence d'un guillemet.

2voto

R.Alonso Points 546
WHERE username LIKE '%[_]d';            -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';

DE : SQL Server échappe à un trait de soulignement

-1voto

Vous pouvez utiliser le **\** avant la valeur à échapper, par exemple insert into msglog(recipient) values('Mr. O\'riely') select * from msglog where recipient = 'Mr. O\'riely'

-2voto

Ben Points 510

Pour faciliter la lecture du code, vous pouvez utiliser des crochets [] pour citer la chaîne de caractères contenant ' ou vice versa .

0 votes

Ce n'est pas le cas. Les parenthèses fonctionnent sur les caractères illégaux dans les noms de champs, de tables ou de schémas.

0 votes

Oui, vous avez raison, c'est pour les noms d'objets, pas pour le contenu des chaînes. Je dois avoir mal lu la question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X