SQL Server 2012 从 CSV 批量插入临时 table

SQL Server 2012 Bulk Insert from CSV into temp table

正如标题所说,我正在尝试将 CSV 文件插入临时 table。不幸的是我遇到了错误。

这里是查询:

USE DATABASE5000

CREATE TABLE #tempTable1
(
    ID INT,
    CD VARCHAR(50), 
    ESD DATETIME,
    EED DATETIME, 
    MiscDate DATETIME, 
    SQ SMALLINT
) 

BULK INSERT #tempTable1
FROM 'C:\Dir\Folder\BestFile.csv';

这是我得到的错误:

Msg 4832, Level 16, State 1, Line 1
Bulk load: An unexpected end of file was encountered in the data file.

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.

Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

有什么想法吗?谢谢大家。

您没有指定任何 FIELDTERMINATOR。默认值实际上是tab。请参考 BULK INSERT 文档。

BULK INSERT #tempTable1
FROM 'C:\Dir\Folder\BestFile.csv'
WITH
(
    FIELDTERMINATOR = ','           -- add this
);

根据文档,有一个 FORMAT = CSV

WITH (FORMAT = 'CSV')

你可以试试。我做了一个快速测试,有一些限制似乎不支持带双引号的字符串