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

时间:2018-10-09 23:35:26

标签: sql sql-server bulkinsert temp-tables

正如标题所述,我正在尝试将CS​​V插入临时表中。我很不幸遇到错误。

以下是查询:

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';

这是我得到的错误:

  

4832,第16级,状态1,第1行
  批量加载:数据文件中遇到意外的文件结尾。

     

消息7399,第16级,状态1,第1行
  链接服务器“(null)”的OLE DB提供程序“ BULK”报告了一个错误。提供者未提供有关该错误的任何信息。

     

MSG 7330,第16级,状态2,第1行
  无法从OLE DB提供程序“ BULK”获取链接服务器“(空)”的行。

有什么想法吗?谢谢你们。

1 个答案:

答案 0 :(得分:2)

您未指定任何FIELDTERMINATOR。缺省值实际上是tab。请参阅BULK INSERT文档。

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

根据文档,有一个FORMAT = CSV

WITH (FORMAT = 'CSV')

您可以尝试一下。我做了一个快速测试,似乎有一些限制,好像它不支持双引号的字符串