如何通过脚本将Excel文件数据导入SQL Server数据库?
Excel导入SQL Server:解决ACE OLEDB未注册问题
你尝试的导入脚本:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO USE Diyur; GO SELECT * INTO Data_dq FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; Database=C:\File.xls', [Sheet1$]); GO
遇到的错误:
Msg 7403, Level 16, State 1, Line 12 The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered.
错误原因
SQL Server所在环境未安装Microsoft ACE OLEDB驱动,或者驱动版本(32位/64位)与SQL Server位数不匹配。
解决步骤
1. 安装对应版本的ACE驱动
- 64位SQL Server:下载安装64位版Microsoft Access Database Engine 2010 Redistributable(ACE 12.0对应此版本)
- 32位SQL Server:安装32位版驱动
- 若系统已装32位Office,直接装64位驱动会冲突,用被动安装命令:
AccessDatabaseEngine_X64.exe /passive
2. 验证脚本与权限
- 若导入的是
.xlsx文件,连接字符串需改为:Excel 12.0 Xml; Database=C:\File.xlsx - 确保SQL Server服务账号拥有
C:\File.xls文件的读取权限,否则会触发文件访问错误
3. 无驱动替代方案:用SQL Server导入导出向导
如果不想装驱动,直接用SSMS自带工具:
- 打开SSMS,右键目标数据库 → 任务 → 导入数据
- 数据源选「Excel」,选择文件路径并匹配Excel版本(2007+选Excel 12.0)
- 目标选SQL Server,指定要导入的数据库
- 跟着向导完成表映射,一键完成数据导入
内容的提问来源于stack exchange,提问作者Ayal
相关产品推荐
相关产品推荐

