web-dev-qa-db-fra.com

Caractères à échapper en SQL

Je cherchais une liste de caractères spéciaux qui doivent être sauvegardés dans le serveur ms sql, mais je n’ai pas pu en trouver une et la plupart des réponses que j’ai rencontrées pour les questions similaires conseillées pour utiliser des requêtes paramétrées. ne fait aucune fuite pour moi. 

Je me suis donc dit que j'allais essayer et voir lequel échouait ... et j'ai essayé une requête simple 

select * from x where value = '<characters>'

dans une telle requête, j'ai essayé presque tous les caractères que je pouvais trouver sur mon clavier et ils semblent tous fonctionner ... autre que la citation simple ... que celui-ci échoue.

Je souhaite donc connaître la liste des caractères non valides et qui doivent être échappés dans ms sq server - tsql et ne veulent pas prendre le risque de simplement échapper la citation simple et laisser le reste qui pourrait causer des problèmes 

Apprécier ton aide

18
Hell Boy

Le seul caractère qui doit être échappé dans une chaîne est un guillemet simple (ce qui se fait avec deux guillemets simples ensemble). Sinon, c'est une chaîne et t-sql ne s'y intéressera plus.

Si vous utilisez une instruction LIKE, consultez la rubrique SO suivante Échapper à une chaîne dans SQL Server pour pouvoir l'utiliser en toute sécurité dans l'expression LIKE

En passant, toute structure qui ne me permet pas d'utiliser des paramètres, qui ne m'échappe pas pour autant, est une étape difficile. Essayer de désinfecter manuellement une entrée de chaîne revient à utiliser la méthode d'extraction. finalement ça va vous avoir.

33
HackedByChinese

Pas sûr que cela soit exact.

% et . et d'autres caractères génériques, en fonction de la requête, peuvent également avoir besoin d'un caractère d'échappement . où vous recherchez un point. Cela va échouer

select * from xxxx where field like '%.%'   
1
Sven Hansen

Je voulais juste dire que _ (trait de soulignement) doit également être évité. 

select * parmi les produits où SomeColumn aime 'FD [_]%'

Soit dit en passant, les requêtes paramétrées sont tout à fait correctes, mais vous souhaitez parfois accéder à la console de gestion SQL et exécuter rapidement une requête pour rechercher un élément.

0
DotnetCoder