无法在64位SQL Server上加载32位OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”

时间:2015-12-01 14:58:18

标签: sql sql-server sql-server-2008-r2 sql-server-2014

我在SQL Server数据库中有以下代码,最近我们已将此数据库从SQL Server 2008 R2服务器迁移到另一台SQL Server 2014服务器。

IF EXISTS (SELECT 1 FROM sys.servers WHERE name = 'Excel_File_Src')
    EXEC sp_dropserver 'Excel_File_Src', 'droplogins'

EXEC sp_addlinkedserver 'Excel_File_Src',
        @srvproduct = 'ACE 12.0',
        @provider = 'Microsoft.ACE.OLEDB.12.0',
        @datasrc =  'E:\UCB_Data.xlsx' ,                
        @provstr = 'Excel 8.0;'

EXEC sp_addlinkedsrvlogin 'Excel_File_Src', 'false'

EXEC SP_TABLES_EX 'Excel_File_Src'

新的SQL Server版本是:

Microsoft SQL Server 2014 - Microsoft Corporation Developer Edition (64-bit) on Windows

它用于在旧服务器上完美运行,但在将其移至新服务器后,我们得到以下错误。

  

无法在64位SQL Server上加载32位OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”。

3 个答案:

答案 0 :(得分:2)

首先,该消息告诉您盒子上安装的办公室位是32位版本。你需要64位版本。其次,确保你没有运行"开发人员"因为你不被允许在生产中出版 - 见EULA。

答案 1 :(得分:0)

您可以下载x64和x86并运行以下命令来安装它们而不会彼此冲突:

"C:\AccessDatabaseEngine_x64.exe" /passive用于64位安装。

"C:\AccessDatabaseEngine.exe" /passive用于32位安装。

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

答案 2 :(得分:-1)

说64位安装不能使用32位驱动程序的错误自解释。您需要一个64位驱动程序才能解决此问题。