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

时间:2020-03-18 14:19:11

标签: sql sql-server insert

尝试将大量记录插入表中时遇到问题。由于数据是可变的并且超过3000行,因此在尝试插入之前,我很难确定将在何处发生。

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

java.time.LocalDateTime

问题出在哪里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') ,因为King的名字中有一个单引号。它会将单引号识别为接近开盘价。

解决此问题的最佳方法是什么?除单引号外,我还能使用其他东西吗?

2 个答案:

答案 0 :(得分:0)

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

EG

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

答案 1 :(得分:0)

如果您要处理多个单引号,但不确定在何处出现,可以暂时将QUOTED_IDENTIFIER更改为 OFF

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_IDENTIFIER设置为OFF

Check Sample Demo Here