我尝试使用以下查询从Excel文件批量上传:
BULK INSERT TempRevenueForecast
FROM 'E:\RevenueTracker\Demo\UserTemplate.xls'
WITH (FORMATFILE = 'E:\RevenueTracker\Demo\TRF.FMT');
GO
但是,我收到了这个错误:
第1行第2列的批量加载数据转换错误(截断)
我该如何解决?
答案 0 :(得分:0)
如果在SSMS中以编辑模式(右键单击表 - 编辑前200行)打开表TempRevenueForecast,则只需复制粘贴excel数据即可。
这是SSMS的一个非常方便的功能。
否则,请使用OpenRowSet:
INSERT INTO [TempRevenueForecast ] ([Column1], [Column2], [Column3], [Column4])
SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=E:\RevenueTracker\Demo\UserTemplate.xls;HDR=YES', 'select * from [Sheet1$]') AS A;
要使其正常工作,必须安装Microsoft Access数据库引擎(ACE)组件
http://www.microsoft.com/en-us/download/details.aspx?id=23734
或
http://www.microsoft.com/en-us/download/details.aspx?id=13255