把我安装经过的弯路总结一下,希望看到这篇文件的人,可以幸免!
1、office 对SQL SERVER 2017的影响。
我的电脑是win8免费升级到win10,以前安装过SQL SERVER 2008.
SQL SERVER 2008一直比较好用。
听说SQL SERVER 2017支持Python,于是升级到了SQL SERVER 2017
在使用SQL打开Excel数据表时,提示消息7302,无法创建链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"的实例。
查找原因,发现链接服务器找不到Microsoft.ACE.OLEDB.12.0。
原因是office是2007 是32位的,而SQLSERVER是64位的。而office2007没有64位的。
2、Microsoft.ACE.OLEDB.12.0的安装
先下载了AccessDatabaseEngine_X64.exe,安装时提示已经有32为office版本,不可以安装。
用SuperOrcaSetup修改了AccessDatabaseEngine_X64,可以安装了。
打开 ssms Microsoft.ACE.OLEDB.12.0出现了。设置好Microsoft.ACE.OLEDB.12.0属性。
但是select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=e:\Book1.xlsx')...[Sheet1$]
依然报错:链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
消息 7303,级别 16,状态 1,第 2 行无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。
无奈更换office版本为64位版本。
Microsoft.ACE.OLEDB.12.0也设置正常:
但是依然报错:
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=e:\Book1.xlsx')...[Sheet1$]
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
消息 7303,级别 16,状态 1,第 2 行
无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。
select * from
OpenDataSource ('Microsoft.ACE.OLEDB.12.0','Data Source=e:\sudo.mdb')...[sodu]
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。
OpenRowSet 同样是消息7303.
3、感谢CSDN论坛大神
在论坛SQL版主吉普赛的歌的指导下:
使用本地系统账户。问题终于解决了。