"Microsoft.ACE.OLEDB.12.0" 无法在 64 位 SQL 服务器上进行进程内加载

"Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server

我找不到这个错误的解决方案:

The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.

我在网上找到了很多帖子,但 none 有用。

我正在使用 SQL server 2014 64 位和 office 2013

产生错误的代码:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                         'Excel 12.0 Xml;HDR=YES;Database=C:\SSIS\Table_nm.xlsx', 
                         'SELECT * FROM [Table_nm$]'); 

事实证明,您可以从这里获取 64 位驱动程序。

https://www.microsoft.com/en-us/download/details.aspx?id=13255

下载后不要双击安装,使用命令提示符安装,应该是这样的:

"C:\Users\rshuell001\Downloads\AccessDatabaseEngine_x64.exe" /passive

'/passive' 是这里的关键,因为如果您已经安装了 32 位版本(通过 32 位 Office),它可以防止安装失败。