我在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”。
答案 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位驱动程序才能解决此问题。