Sql 当数据包含单引号时,如何插入到Varchar列中?

Sql 当数据包含单引号时,如何插入到Varchar列中?,sql,sql-server,insert,Sql,Sql Server,Insert,我在尝试向表中批量插入大量记录时遇到问题。由于数据是可变的,并且超过3000行,所以在尝试插入之前,我很难确定在哪里会发生这种情况 下面是我正在运行的查询,以及我是如何构造插入的: Insert Into dbo.TruElectric([TruType],[MPAN],[MSN],[Address_1],[Address_2],[Address_3]) Values('SI','1030066607770' ,'S10EH00771' ,'Flat F' ,'15 Homeland Road

我在尝试向表中批量插入大量记录时遇到问题。由于数据是可变的,并且超过3000行,所以在尝试插入之前,我很难确定在哪里会发生这种情况

下面是我正在运行的查询,以及我是如何构造插入的:

Insert Into dbo.TruElectric([TruType],[MPAN],[MSN],[Address_1],[Address_2],[Address_3])

Values('SI','1030066607770' ,'S10EH00771' ,'Flat F' ,'15 Homeland Road' ,'King's Lynn')
问题出在
[Address_3]
上,因为国王的名字只有一句话。它将单个报价视为接近开放的报价


最好的解决办法是什么?除了单引号,还有什么我可以用的吗

使用参数处理单引号并防止SQL注入漏洞

乙二醇


如果您正在处理多个单引号,但不确定它出现在何处,您可以暂时将其更改为关闭

SET QUOTED_IDENTIFIER OFF;
Insert Into dbo.TruElectric([TruType],[MPAN],[MSN],[Address_1],[Address_2],[Address_3])
Values('SI','1030066607770' ,'S10EH00771' ,'Flat F' ,'15 Homeland Road' ,"King's Lynn")
SET QUOTED_IDENTIFIER ON;
在这里,您可以使用双引号括起字符串。请浏览我在上面共享的链接,因为在某些情况下,您无法将
QUOTED\u标识符设置为
OFF


单引号加倍:
“国王的林恩”
。双单引号是在SQL中对字符串中的单引号进行转义的方法。@GordonLinoff有什么建议可以帮助您确定在哪里有单引号可以添加另一个单引号?数据来自哪里?这是否类似于SSIS或SSMS导入向导可以为您执行的电子表格或csv,而不是自己生成3000条insert语句。。。。
SET QUOTED_IDENTIFIER OFF;
Insert Into dbo.TruElectric([TruType],[MPAN],[MSN],[Address_1],[Address_2],[Address_3])
Values('SI','1030066607770' ,'S10EH00771' ,'Flat F' ,'15 Homeland Road' ,"King's Lynn")
SET QUOTED_IDENTIFIER ON;