批量导入仅适用于1列csv文件

时间:2018-02-13 18:31:08

标签: sql-server

每当我尝试将CS​​V文件导入到具有多个列的sql server中时,我都会收到错误(嗯,没有导入任何内容)。我知道文件终止正常,因为如果我修改文件和表,它可以使用1列ok。我限制行,所以它永远不会到达终点,行终止符是正确的有效行(也可以通过只有1列时的工作来显示)。

我得到的就是这个而且没有错误

0 rows affected

我还检查了所有其他类似的问题,它们都指向文件或行终止符的错误结尾,但一切都很好......

我试过引号而没有引号。例如,我有一个包含2列varchar(max)的表。 我跑:

bulk insert mytable from 'file.csv' WITH (FIRSTROW=2,lastrow=4,rowterminator='\n')

我的示例文件是:

name,status 
TEST00040697,OK 
TEST00042142,OK 
TEST00042782,OK
TEST00043431,BT

如果我删除一列然后删除csv中的第二列,确保它具有相同的行终止符\ n,它可以正常工作。

我也尝试过指定'errorfile'参数但它似乎永远不会写任何内容甚至创建文件。

1 个答案:

答案 0 :(得分:0)

嗯,那令人尴尬。

其中的SQL Server智慧是使用\ t作为CSV文件的默认字段终止符,但我想当文档说'FORMAT ='CSV'时,它是一个示例,而不是默认值。

如果它只产生了实际正确和有用的错误信息......