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)
• Comillas simples de la derecha (U + 2019)
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''