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

EXCEL导入MSSQL2008 错误,请大牛们看看!
本帖最后由 abclm 于 2012-12-13 20:59:24 编辑

--数据库版本
select @@VERSION
--Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)   Jul  9 2008 14:17:44   Copyright (c) 1988-2008 
--Microsoft Corporation  Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: 
--操用系统 win7 x64
--excel 版本 excel2003 32位

--导入语句1
SELECT * into len_tms
FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0',
'Data Source="D:\订单2012-1全月数据.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
--提示
--消息 7308,级别 16,状态 1,第 1 行
--因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式
--导入语句2
SELECT * into len_tms 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\订单2012-1全月数据.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
--提示
--消息 7308,级别 16,状态 1,第 1 行
--因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。


请大牛们给个解决办法!谢谢



------解决方案--------------------
先用手动导入试试.
------解决方案--------------------
在服务器上安装了ACE2010的驱动,64位的。
 AccessDatabaseEngine_x64.exe(如果之前安装过32位的话,需要先删除)
 下载地址:
 http://www.microsoft.com/download/en/details.aspx?id=13255

修改代码
 
 select * from OpenRowSet
         ('Microsoft.ACE.OLEDB.12.0',
          'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
           [Sheet1$]
          )

------解决方案--------------------
下载了? 安装有报错?
------解决方案--------------------
卸载office组件 ,安装就好了
------解决方案--------------------
参考http://blog.csdn.net/orchidcat/article/details/7480680
------解决方案--------------------


--反正这样是没有任何问题
SELECT * INTO  #tmp_asset
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\mswdata.xls', 'SELECT * FROM [sheet1$]') ;