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

Fis*_*kes 9 sql sql-server bulkinsert temp-tables

正如标题所说,我正在尝试将 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';
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

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

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

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

有任何想法吗?谢谢你们。

Squ*_*rel 14

您没有指定任何FIELDTERMINATOR. 默认值实际上是tab。请参阅批量插入文档。

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

根据文档,有一个 FORMAT = CSV

WITH (FORMAT = 'CSV')
Run Code Online (Sandbox Code Playgroud)

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