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

导入EXCEL文件到SQL-SERVER数据库报错
 要导入的EXCEL已放在服务器磁盘上。 环境如图,求大虾指点

------最佳解决方案--------------------
解决方式:
1、在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数
2、执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误
3、链接字符串 Extended Properties属性的内容要以分号间隔并用双引号括起来,sheet1$ 在括号外

4、注意office的版本4.0是office2003,12.0是office2007的版本,看看是否装了驱动。

5、最为关键的是要看sql server 版本号,是32位的还是64位的。x64位的sql server很多的office的驱动是不支持的。

所以如果搞不成的话,不妨放到32位的sqlserver ,会有不少的收获


64位下OPENROWSET运行出现错误

在SSMS中执行:SELECT CustomerID, CompanyName
   FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
      'D:\nwind.mdb';
      'admin';'',Customers)

消息7308,级别16,状态1,第1 行
因为OLE DB 访问接口'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
 我的环境SQL Server 2008(64位)+windows2008r2(64位)

解决办法:

http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/58c4c61e-fa86-4809-bf7d-21bacb055d3e/

下载最新的驱动

原因是:在64SQL Engine中已经不提供jet.oledb.4.0的驱动了
解决方法:下载一个ACE.Oledb.12.0 for X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0