You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server执行BULK INSERT报错:FORMAT附近存在语法错误

解决BULK INSERT导入CSV时的"FORMAT附近存在语法错误"问题

问题原因

SQL Server的BULK INSERT语句不支持FORMAT = 'CSV'参数,该参数仅适用于OPENROWSET(BULK...)语法,这就是触发语法错误的直接原因。

解决方案1:修改BULK INSERT语句,使用CSV标准分隔符

直接替换FORMAT = 'CSV'为CSV对应的字段和行终止符配置,同时根据文件情况补充必要选项:

-- 修正后的批量插入语句
BULK INSERT dbo.ADDRESSSCHEDULE_Backup
FROM 'C:\Users\azenk\Desktop\SQL\Exports\AddressSchedule.csv'
WITH
(
    FIRSTROW = 2,
    FIELDTERMINATOR = ',', -- CSV默认字段分隔符
    ROWTERMINATOR = '\r\n', -- Windows系统换行符,Linux/macOS可改为'\n'
    QUOTED_IDENTIFIER = ON, -- 处理带双引号包裹的字段(如字段内容含逗号)
    CODEPAGE = '65001' -- 若文件为UTF-8编码需添加,GBK则用'936'
)

说明:如果你的CSV文件没有带引号的字段,可以去掉QUOTED_IDENTIFIER = ON;行终止符需匹配实际文件的换行格式。

解决方案2:使用OPENROWSET配合FORMAT='CSV'参数

如果想保留FORMAT = 'CSV'的写法,可以改用OPENROWSET结合INSERT INTO的方式:

-- 通过OPENROWSET导入CSV数据
INSERT INTO dbo.ADDRESSSCHEDULE_Backup
SELECT *
FROM OPENROWSET(
    BULK 'C:\Users\azenk\Desktop\SQL\Exports\AddressSchedule.csv',
    FORMAT = 'CSV',
    FIRSTROW = 2
) AS csv_data

注意:使用该方式需要先启用SQL Server的Ad Hoc Distributed Queries配置,执行以下语句开启(操作完成后建议关闭以保障安全):

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

内容的提问来源于stack exchange,提问作者azenk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:52:14