¿Cómo puedo escapar de una comilla simple en SQL Server?

Resuelto tim_wonil asked hace 15 años • 15 respuestas

Estoy intentando incluir insertalgunos datos de texto en una tabla en SQL Server 9.

El texto incluye una cita simple '.

¿Cómo puedo escapar de eso?

Intenté usar dos comillas simples, pero me arrojó algunos errores.

p.ej.insert into my_table values('hi, my name''s tim.');

tim_wonil avatar Oct 19 '09 08:10 tim_wonil
Aceptado

Las comillas simples se escapan duplicándolas , tal como nos mostró en su ejemplo. El siguiente SQL ilustra esta funcionalidad. Lo probé en SQL Server 2008:

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

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

SELECT * FROM @my_table

Resultados

value
==================
hi, my name's tim.
Cᴏʀʏ avatar Oct 19 '2009 01:10 Cᴏʀʏ

Si escapar de su comilla simple con otra comilla simple no le funciona (como no funcionó para una de mis REPLACE()consultas recientes), puede usarlo SET QUOTED_IDENTIFIER OFFantes de su consulta y luego SET QUOTED_IDENTIFIER ONdespués de su consulta.

Por ejemplo

SET QUOTED_IDENTIFIER OFF;

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

SET QUOTED_IDENTIFIER ON;
-- set OFF then ON again
Brad303 avatar Sep 05 '2013 23:09 Brad303

Qué tal si:

insert into my_table values('hi, my name' + char(39) + 's tim.')
PaulMcG avatar Oct 19 '2009 01:10 PaulMcG