Microsoft.ACE.OLEDB.12.0 及其在 MSSQL中的使用
1.Microsoft.ACE.OLEDB.12.0 简介
就是一个数据访问接口,用于在office文件和非office应用程序间传输数据。例如 Microsoft Office Access 2010(*.mdb和 *.accdb)文件和Microsoft Office Excel 2010(*.xls、*.xlsx和 *.xlsb)文件)与其他数据源(例如 Microsoft SQL Server)之间传输数据。
2.Microsoft.ACE.OLEDB.12.0 在 MSSQL中的应用
1) 查看是否已经安装此接口
进入SSMS后,在对象资源管理器中,位次展开“服务器对象”--- “链接服务器”---“访问接口”,如果在访问接口下面找到了Microsoft.ACE.OLEDB.12.0(如下图),则说明已经安装此接口。也有可能版本号不是12.0,此版本是对应Office 2010的。一般情况下,如果安装了Office,此接口会跟着一起被安装。
2) 安装接口
如果没能找到此接口,说明系统没有安装Office或者所安装版本(32bit或64bit)与SQL Server版本不一致。可以有如下解决方案:
a) 若Office与MSSQL位数不一致,重新安装与SQL Server位数相同的Office,同为32bit或64bit;
b) 若不准备安装Office,可以单独安装Microsoft.ACE.OLEDB.12.0:32bit下载 或64bit下载。
若安装时出现点击后闪退,可以先用WINRAR将exe安装包解压,再运行里面的setup
3)使用接口读取Excel文件示例
读取D盘目录下的Test.xlsx文件Sheet1中的内容
SELECT ID,Content FROM
OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Test.xlsx')... [sheet1$]
3.常见问题
1)
消息 7403......尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"。
原因:当前所连数据库所在服务器,未安装此接口。
解决方案:参见上面第2点。
2)
消息 15281……SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭
可能原因:未开启 Ad Hoc Distributed Queries(即席分布式查询)
参考解决方案:用代码开启 Ad Hoc Distributed Queries
1 2 3 4 5 6 7 8 | sp_configure 'show advanced options' , 1; GO RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries' , 1; GO RECONFIGURE; GO |
3)
消息 7399……链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。访问被拒绝。
消息 7301……无法从链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 获取所需的界面("IID_IDBCreateCommand")。
消息 7302……无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "MSDASC" 的实例
可能原因:SQL Server(MSSQLSERVER) 的登陆身份不合适
参考解决方案:将相关服务的登陆身份改为 local system
操作方法:
运行 services.msc,找到SQL Server(MSSQLSERVER),右键属性,登陆相关选项卡,本地系统帐户。
或
开始---所有程序---MicrosoftSQL Server 2008 R2(或其他版本)---配置工具---SQLServer 配置管理器,找到SQL Server(MSSQLSERVER) ,右键属性,登陆选项卡,内置帐户改为Local system。
最后,若在MSSQL JOB中也要用到此接口,则SQL Server代理(MSSQLSERVER)这个服务也要做相同修改。
4)
返回了消息 "Microsoft Access 数据库引擎无法打开文件“”或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的权限
文档已被本地账号打开,关闭即可,如果要打开时也可以访问,请用Windows身份验证方式登陆。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤