我正在使用以下命令将使用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知道,是的,最后一行被终止而不是抱怨或失败?
答案 0 :(得分:3)
使用以下内容:
BULK INSERT import
from 'D:\tail.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '0x0a', FIRSTROW = 1)
GO