我有一个CSV文件,其中包含三个日期:
'2010-07-01','2010-08-05','2010-09-04'
当我尝试批量插入它们时......
BULK INSERT [dbo].[STUDY]
FROM 'StudyTable.csv'
WITH
(
MAXERRORS = 0,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
我收到错误:
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (CREATED_ON).
所以我假设这是因为我的日期格式无效。使用的正确格式是什么?
修改
CREATE TABLE [dbo].[STUDY]
(
[CREATED_ON] DATE,
[COMPLETED_ON] DATE,
[AUTHORIZED_ON] DATE,
}
答案 0 :(得分:6)
你的日期周围有引号(')。删除它们,它应该工作。
答案 1 :(得分:0)
您的数据文件是否有标头记录?如果是这样,显然您的表名称将不是正确的数据类型,并且当SQL Server尝试将它们插入表中时将失败。试试这个:
BULK INSERT [dbo].[STUDY]
FROM 'StudyTable.csv'
WITH
(
MAXERRORS = 0,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
根据MSDN,BULK INSERT操作在技术上不支持在CSV文件中跳过标题记录。您可以删除标题记录或尝试上述操作。我目前没有SQL Server在我面前,所以我还没有确认这是有效的。 YMMV。