我试图使用BULK INSERT
从.csv文件向现有表中添加行。现在我有一个测试的目的具有以下格式的小文件:BULK INSERT未正确插入CSV
UserID,Username,Firstname,Middlename,Lastname,City,Email,JobTitle,Company,Manager,StartDate,EndDate
273,abc,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
274,dfg,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
275,hij,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
而这正是我的查询目前看起来像:
BULK INSERT DB_NAME.dbo.Users
FROM 'C:\data.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
当我执行此查询返回1行受影响。我检查了表中的条目并注意到文件中的数据作为单行插入到表中。
这可能是什么原因造成的?我试图完成的是将这些行插入表中的各行中。见(长)图像下方
第一列实际上是一个IDENTITY列,以便在文件我只指定一个整数,即使通过自动生成的ID就会被改写,因为我不知道如何告诉查询开始从第二场开始插入。
实际表格中创建的列数多于文件中指定的数量,因为并非所有内容都需要填充。这可能会导致它?
检查你最喜欢的文本编辑器,看看所有的符号是什么。例如在Notepad ++中启用“显示所有符号”。也许你的行以'\ r'而不是'\ r \ n'结尾。 –
对于测试,您是否可以创建一个没有标识字段的临时表,并取出WITH语句以查看返回的数据? –
根据字符编码的不同,新的换行符被标记为不同。你用'/ r/n'试过了吗? – Fka