尝试将大量记录插入表中时遇到问题。由于数据是可变的并且超过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的名字中有一个单引号。它会将单引号识别为接近开盘价。
解决此问题的最佳方法是什么?除单引号外,我还能使用其他东西吗?
答案 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
。