BULK INSERT在最后一行失败并带有行终止符

时间:2014-08-13 16:57:22

标签: sql-server csv bulkinsert

我正在使用以下命令将使用cygwin shell命令编译的CSV导入MS SQL 2014:

BULK INSERT import
from 'D:\tail.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\r', FIRSTROW = 1)
GO

我已确认每行包含\ r \ n。如果我在最后一行留下CR / LF,则批量导入将失败并显示Msg 4832:

  

批量加载:数据文件中遇到意外的文件结尾。

如果我在最后一个数据行的末尾结束文件,则批量导入成功。

对于非常大的CSV,解决此问题的一个常见方法是找到行数并使用LASTROW设置进行BULK INSERT。是否有一种更优雅的方式让MS SQL知道,是的,最后一行被终止而不是抱怨或失败?

1 个答案:

答案 0 :(得分:3)

使用以下内容:

BULK INSERT import
from 'D:\tail.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '0x0a', FIRSTROW = 1)
GO
相关问题