使用BULK INSERT导入双引号限定CSV文件不起作用

时间:2017-12-26 09:42:27

标签: sql-server csv bulkinsert

BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
WITH ( FIELDTERMINATOR ='","',ROWTERMINATOR ='"\n"',FirstRow=1);

我无法使用双引号csv文件运行批量插入。你能不能帮我解决这个问题。

csv文件包含以下内容:

  

“设备”,“专利   设备”,‘服务器’,‘位置’,‘时间’,‘价值’,‘单位’,‘状态’   “101.162.57.1​​98- Slave56”,“localhost(数据中心)”,“输出   真“,”“,”2017年11月14日14:58:00“,”88.8“,”kW“,”“”101.162.57.1​​98-   Slave56“,”localhost(数据中心)“,”输出真实“,”“,”2017年11月14日   16:58:00“,”88.7“,”kW“,”“”101.162.57.1​​98- Slave56“,”localhost(数据)   中心)“,”输出真“,”“,”2017年11月14日18:58:00“,”88.5“,”kW“,”“   “101.162.57.1​​98- Slave56”,“localhost(数据中心)”,“输出   真“,”“,”2017年11月14日20:58:00“,”89.0“,”kW“,”“

1 个答案:

答案 0 :(得分:0)

  1. 您应该设置FirstRow=2或删除csv文件中的第一行

  2. 将行终止符更改为:ROWTERMINATOR ='\n'

  3. 您应该删除csv文件每行中的第一个和最后一个双引号。
  4. <强> UPD: 尝试使用'0x0a'代替'\n'作为行终止符。 如果操作无法解决问题,请创建格式文件以描述表格和csv文件列之间的确切关系。以下链接可以帮助您:

    Non-XML Format Files

    Create a Format File

    然后使用此命令:

    BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
    WITH (FORMATFILE = 'D:\yourFMT.fmt');