正如标题所说,我正在尝试将 CSV 插入到临时表中。不幸的是,我遇到了错误。
这是查询:
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')
你可以试试。我做了一个快速测试,有一些限制似乎不支持带双引号的字符串
关于SQL Server 2012 从 CSV 批量插入到临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52730644/