日期:2014-05-17  浏览次数:20599 次

【求教】Excel导入到SQL server2005中已存在的表的问题
我在SQL server2005里的表Sheet1$的列名是F1、F2、F3、F4、F5、F6
我的test01.xlsx文件里的列名是没修改过的A、B、C、D、E、F

我用的的SQL语句是:
insert into test01.dbo.Sheet1$ (F1,F2,F3,F4,F5,F6) select A,B,C,D,E,F from OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="D:\host\test\test01.xlsx";Extended properties="Excel 12.0;HDR=No"')...[sheet1$]


提示的错误是:
消息 207,级别 16,状态 1,第 1 行
列名 'A' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'B' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'C' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'D' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'E' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'F' 无效。

请高手指教一下,谢谢!

------解决方案--------------------
参考:
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;321686

SQL code
--列数对应上即可
insert into test01.dbo.Sheet1$ (F1,F2,F3,F4,F5,F6) 
select * from OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="D:\host\test\test01.xlsx";Extended properties="Excel 12.0;HDR=No"')...[sheet1$]