在SQL Server 2008中从Excel批量上载

时间:2014-07-21 11:22:25

标签: sql sql-server excel sql-server-2008

我尝试使用以下查询从Excel文件批量上传:

BULK INSERT TempRevenueForecast 
   FROM 'E:\RevenueTracker\Demo\UserTemplate.xls' 
   WITH (FORMATFILE = 'E:\RevenueTracker\Demo\TRF.FMT');
GO

但是,我收到了这个错误:

  

第1行第2列的批量加载数据转换错误(截断)

我该如何解决?

1 个答案:

答案 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