1266 votes

Comment puis-je échapper une seule citation dans sqlserver?

J'essaie d'insérer des données de texte dans une table dans SQLServer 9.

Le texte comprend une seule citation.

Comment puis-je échapper à cela?

J'ai essayé d'utiliser deux guillemets simples, mais cela m'a donné quelques erreurs.

par exemple. insert into my_table values('hi, my name''s tim.');

1816voto

Cory Points 37551

Les guillemets simples sont évités en les doublant , comme vous nous l'avez montré dans votre exemple. Le SQL suivant illustre cette fonctionnalité. Je l'ai testé sur SQL Server 2008:

 DECLARE @my_table TABLE (
    [value] VARCHAR(200)
)

INSERT INTO @my_table VALUES ('hi, my name''s tim.')

SELECT * FROM @my_table
 

Résultats

 value
==================
hi, my name's tim.
 

87voto

Brad Waite Points 44

Si l'échappement de votre guillemet simple avec un autre guillemet simple ne fonctionne pas pour vous (comme ce fut le cas pour l'une de mes requêtes récentes REPLACE() ), vous pouvez utiliser SET QUOTED_IDENTIFIER OFF avant votre requête, puis SET QUOTED_IDENTIFIER ON après votre requête.

Par exemple

 SET QUOTED_IDENTIFIER OFF;

UPDATE TABLE SET NAME = REPLACE(NAME, "'S", "S");

SET QUOTED_IDENTIFIER ON;
-- set OFF then ON again
 

70voto

Paul McGuire Points 24790

Que diriez-vous:

 insert into my_table values('hi, my name'+chr(39)+'s tim.')
 

18voto

Alex Martelli Points 330805

Le doublement de la citation doit ont travaillé, donc il est étrange qu’il n’a pas fonctionné pour vous ; Toutefois, une alternative utilise des guillemets doubles, au lieu unique, autour de la chaîne. Par exemple,

``);

-5voto

user181945 Points 19

Je suis d’accord avec Cory Larson, quand je suis avec MSSQL 2005 j’ai utiliser l’apostrophe pour échapper à l’apostrophe. Semble bizarre, mais c’est du travail pour moi. Essayer avec ça.

Edit : Du'h, j’ai oublié la référence : citations s’échappe de MSSQL 2005

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