T-SQL——关于安装 Mcrosoft.ACE.oledb.16.0出现的32位和64位的冲突问题
1.关于安装Access数据引擎: microsoft.ACE.oledb.16.0(或者:microsoft.ACE.oledb.12.0)
-
公司电脑是64位,Office是32位,MSSM是MSSM20 64位
- 使用OPENROWSET读取Excel时,报错:
不能在 64 位 SQL Server 上在进程中加载 32 位 OLE DB 访问接口“Microsoft.ACE.OLEDB.16.0”。
- 需要安装Microsoft.ACE.OLEDB.16.0 64位
- 第一步下载安装包:Microsoft Access Database Engine 2016 Redistributable
- 因为已经安装了32位的Office,会报错“You cannot install the 64-bit version of Microsoft Access Database Engine 2010 because you currently have 32-bit Office products installed”,需要让你卸载32的Office,若是你此时安装32位的驱动,已经报错提示你已经安装了62位的程序。此时并不需要
- 在下载的安装包路径下,进入Cmd命令行,运行:AccessDatabaseEngine_x64.exe/passive,此时我的环境还是不成功。
- 注意:上述安装失败,则解压缩该AccessDatabaseEngine_x64.exe程序,进入解压后的路径,并运行:AceRedist.msi/passive(见参考1)
- 或者尝试使用该命令安装:AccessDatabaseEngine_X64.exe /quiet(见参考2)
- 使用OPENROWSET读取Excel时,报错:
-
安装64位和32位冲突,参考1:https://stackoverflow.com/questions/12270453/ms-access-db-engine-32-bit-with-office-64-bit
-
安装64位和32位冲突,参考2:https://stackoverflow.com/questions/40360932/microsoft-ace-oledb-16-0-provider-is-not-registered-on-the-local-machine-sys#
-
关于ACE引擎:可以参考:https://blog.csdn.net/pulledup/article/details/110233127
-
之前安装Microsoft.ACE.oledb.12.0 ,我在网上找到了两个版本的安装包,其实就是参考1中的使用的一个方案,修改了安装包
此外,如果您不想使用“/passive”命令行参数,您可以编辑AceRedist.msi文件以删除 MS Office 架构检查:
下载并安装 Microsoft Orca: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx
解压缩 AccessDatabaseEngine.exe 或 AccessDatabaseEngine_x64.exe 文件
在Orca中打开AceRedist.msi文件
搜索包含“CheckOfficeArchitecture”操作的两个表行,并删除这些行
保存更新的 AceRedist.msi 文件
- 参考我之前博文:T-SQL——关于SQL读取Excel文件
2.关于MSSM界面导入,选择目标时候,没有SQL Server Native Client11.0
-
若是有:SQL Server Native Client,则选择该驱动
-
若是有:Microsoft OLE DB Driver for SQL Server,在选择该驱动,在弹出窗口设置数据库地址及密码
-
说明,我安装MSSM20 没有安装 SQL Server Native Client ,也不需要再安装了。
SQL Server Native Client (SNAC) 未随附:
SQL Server 2022 (16.x) 及更高版本
SQL Server Management Studio 19 及更高版本 -
关于 不同代的 OLE DB 驱动程序
参考:https://learn.microsoft.com/zh-cn/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-ver15不同代的 OLE DB 驱动程序
有三个不同代的 Microsoft OLE DB Provider for SQL Server。- Microsoft OLE DB Provider for SQL Server (SQLOLEDB)
Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 仍作为 Windows 数据访问组件的一部分提供。 不再对其进行维护,且不建议在新开发中使用此驱动
程序。 不建议在新的开发工作中使用旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新版 Microsoft OLE DB Driver
(MSOLEDBSQL) for SQL Server。 - SQL Server Native Client (SNAC)
SQL Server Native Client (SNAC) 从 SQL Server 2005 (9.x) 开始提供。 SNAC 包含一个 OLE DB 提供程序接口 (SQLNCLI),并且它是 SQL Server 2005
(9.x) 至 SQL Server 2012 (11.x) 中随附的 OLE DB 提供程序。
已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开
发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)。 此后请切换到新版 Microsoft OLE DB Driver (MSOLEDBSQL) for
SQL Server。 有关 SNAC 生命周期和可用下载的详细信息,请参阅所述的 SNAC 生命周期。 - Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)(建议)
OLE DB 已取消弃用并于 2018 年发布。
新的 OLEDB 提供程序被称为“Microsoft OLEDB Driver for SQL Server (MSOLEDBSQL)”。 随着最新服务器功能的演进,将对新提供程序进行更新。
- Microsoft OLE DB Provider for SQL Server (SQLOLEDB)