txt tabla plano insertar importar importacion exportar exportacion ejemplos datos con cargar archivo sql sql-server-2005 quotes quotations

tabla - Cómo insertar texto con el servidor sql de cotización simple 2005



importar txt a sql server 2012 (6)

Quiero insertar texto con una comilla simple Eg john''s to table en la base de datos sql server 2005


Escape una comilla simple con una sola adicional como señaló Kirtan
Y si está intentando ejecutar un sql dinámico (que no es una buena idea en primer lugar) a través de sp_executesql, entonces el siguiente código funcionaría para usted

sp_executesql N''INSERT INTO SomeTable (SomeColumn) VALUES (''''John''''''''s'''')''


La respuesta realmente depende de cómo esté haciendo INSERT .

Si está especificando un SQL literal, entonces necesita usar el método de doble tilde:

-- Direct insert INSERT INTO Table1 (Column1) VALUES (''John''''s'') -- Using a parameter, with a direct insert DECLARE @Value varchar(50) SET @Value = ''John''''s'' INSERT INTO Table1 (Column1) VALUES (@Value) -- Using a parameter, with dynamic SQL DECLARE @Value varchar(50) SET @Value = ''John''''s'' EXEC sp_executesql ''INSERT INTO Table1 (Column1) VALUES (@p1)'', ''@p1 varchar(50)'', @Value

Si está haciendo el INSERT desde el código, use los parámetros:

// Sample ADO.NET using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand command = conn.CreateCommand()) { command.CommandText = "INSERT INTO Table1 (Column1) VALUES (@Value)"; command.Parameters.AddWithValue("@Value", "John''s"); command.ExecuteNonQuery(); } }

Si sus datos contienen entradas de usuario, directas o indirectas, USE PARÁMETROS . Los parámetros protegen contra los ataques de inyección SQL. Nunca construyas SQL dinámico con la entrada del usuario.


INSERT INTO Table1 (Column1) VALUES (''John''''s'')

O puede usar un procedimiento almacenado y pasar el parámetro como -

usp_Proc1 @Column1 = ''John''''s''

Si está utilizando una consulta INSERT y no un procedimiento almacenado, tendrá que escapar de la cita con dos comillas, de lo contrario está bien si no lo hace.


Esto funcionó para mí:

INSERT INTO [TABLE] VALUES (''text'',''''''test.com'''''', 1)

Básicamente, toma la comilla simple que desea insertar y la reemplaza por dos. Entonces, si quiere insertar una cadena de texto (''texto'') y agregarle comillas simples, sería ('''' ''texto'' ''''). Espero que esto ayude.


Usted preguntó cómo escapar de un Apostrophe character ('') en SQL Server. Todas las respuestas anteriores hacen un excelente trabajo al explicar eso.

Sin embargo, dependiendo de la situación, el Right single quotation mark character ('') podría ser apropiado.

(No se necesitan caracteres de escape)

-- Direct insert INSERT INTO Table1 (Column1) VALUES (''John’s'')

• Apostrophe (U + 0027)

Ascii Apostrophe en Wikipedia

• Comillas simples de la derecha (U + 2019)

Unicode Right single quotation en Wikipedia


Esta respuesta funciona en SQL Server 2005, 2008, 2012.

En ocasiones, el valor tiene MUCHAS comillas simples. En lugar de agregar una sola cita al lado de cada cita individual como se describe arriba con ''John''''s'' . Y hay ejemplos que usan la función REPLACE para manejar muchas comillas simples en un valor.

Prueba lo siguiente. Esta es una declaración de actualización, pero también puede usarla en una declaración INSERT .

SET QUOTED_IDENTIFIER OFF DECLARE @s VARCHAR(1000) SET @s = "SiteId:''1''; Rvc:''6''; Chk:''1832''; TrEmp:''150''; WsId:''81''; TtlDue:''-9.40''; TtlDsc:''0''; TtlSvc:''0''; TtlTax:''-0.88''; TtlPay:''0''; TipAmt:''0.00''; SvcSeq:''09''; ReTx:''N''; TraceId:''160110124347N091832'';" UPDATE TransactionPaymentPrompt set PromptData = @s from TransactionPaymentPrompt tpp with (nolock) where tpp.TransactionID = ''106627343''