SQL Server导入导出向导选择Excel文件作为数据源时崩溃问题求助
SSMS 导入导出向导导入Excel崩溃问题解决方案
故障根因
错误码0xc06d007e、0xc000041d对应32位的DTSWizard.exe(SSMS 18默认是32位程序)调用Excel访问驱动时出现架构不匹配,触发未处理异常直接终止进程。重装SSMS、修复Office无法解决驱动架构冲突问题,导出功能正常是因为导出流程调用的驱动接口逻辑和导入存在差异。
修复步骤
- 先确认当前Office的安装架构:打开任意Excel文件,点击「文件」-「账户」-「关于Excel」,窗口顶部会标注是32位还是64位版本。
- 若当前安装的是64位Office:
- 获取32位的Microsoft Access Database Engine 2016可再发行组件安装包
- 将安装包放在C盘根目录,重命名为
accessdatabaseengine.exe - 以管理员身份打开命令提示符,执行命令
C:\accessdatabaseengine.exe /quiet,等待安装完成,该参数可以绕过「与64位Office冲突」的安装拦截
- 若当前安装的是32位Office:
- 打开控制面板-程序和功能,检查是否存在64位版本的Microsoft Access Database Engine
- 卸载64位驱动后,重新安装对应32位版本的Access Database Engine即可
- 所有操作完成后重启SSMS,重新执行Excel导入操作即可恢复正常
备选临时方案
如果暂时不想调整驱动配置,可以直接通过SQL语句导入Excel数据,无需调用导入导出向导:
- 先开启即席分布式查询权限:
sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;
- 执行导入语句,按需替换对应参数即可:
SELECT * INTO 你的目标SQL表名 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES;Database=C:\替换为你的Excel文件完整路径.xlsx')...[替换为实际工作表名$]
内容的提问来源于stack exchange,提问作者El Xando
相关产品推荐
相关产品推荐

