批量上传:"意外的文件结束"在新服务器上

时间:2011-03-29 16:22:02

标签: sql-server bulkinsert

我正在尝试在我们的sql数据库中的一个表中进行批量上传。之前,当我们在不同的服务器上安装数据库时,此查询运行良好,但现在在新服务器上我收到错误。 这就是我的全部内容: sql批量导入查询:

BULK
INSERT NewProducts
FROM 'c:\newproducts.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO

我得到的错误是:

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)".

感谢您提前提供任何帮助。

3 个答案:

答案 0 :(得分:0)

我以前遇到过这个问题,有几点需要注意:

  1. 确保您的csv文件顶部没有任何空白行。
  2. 确保文件末尾没有其他空白行。
  3. 确保ROWTERMINATOR实际上是\n而不是\r\n
  4. 如果你做了所有这三个并且仍然收到错误,请告诉我。

答案 1 :(得分:0)

在我的情况下,我尝试访问的文件位于SQL Sever进程无权访问的目录中。我将平面文件移动到SQL有权访问的目录,并且此错误已解决。

答案 2 :(得分:0)

对于遇到此问题寻找答案的其他人,当CSV文件中的列数与您正在批量插入的表的列不匹配时,也会发生此错误。