对于SQL Server 2008 R2,是否可以使用“批量插入”导入日期为“MM / DD / YYYY”格式的.csv文件?或者我是否必须将我的.csv文件更改为具有SQL Server 2008 R2期望的格式?
我在Microsoft SQL Server 2008 R2中执行以下命令:
BULK
INSERT dbo.TCsvOptionContracts
FROM 'C:\x.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FORMATFILE = 'C:\format.xml',
FIRSTROW = 2
)
GO
我收到了这个错误:
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 1 (Date).
.csv文件的此列中的日期格式为MM / DD / YYYY,即“02/16/2011”。
P.S。我使用以下命令生成了一个格式文件,但是,我没有看到任何选项来为违规列指定MM / DD / YYYY日期格式:
bcp Engine..TCsvOptionContracts format nul -c -x -f C:\format.xml -t, -T
答案 0 :(得分:2)
将“date”列配置为“smalldatetime”而不是“datetime”。试了一下,一切都进口了100%。
有两种可能的方法可以做到这一点:
答案 1 :(得分:0)
这有点晚了,但如果您仍然无法将数据批量插入SQL 2008 R2中的日期列,请查看此修补程序: http://support.microsoft.com/kb/968215 这为我解决了。
答案 2 :(得分:-3)
FROM'C:\ x.csv' 批量加载时,确保文件与SQL Server位于同一目录中非常重要。 如果SQL服务器在c:\中,那么文件应该在C:中。 如果SQL服务器在D:\中,那么文件应该在D:中。 我发现它有很多帮助