解决SQL Server导入xlsx文件报错问题
在使用SQL Server时,我们经常需要将Excel表格导入到SQL中。然而,在导入过程中,由于各种原因,很可能会遇到类似“未在本地计算机上注册“版本号).0”提供程序”的问题。本文将教你如何彻底解
在使用SQL Server时,我们经常需要将Excel表格导入到SQL中。然而,在导入过程中,由于各种原因,很可能会遇到类似“未在本地计算机上注册“版本号).0”提供程序”的问题。本文将教你如何彻底解决这类问题。
解决方法一:安装缺少的组件
出现这种问题通常是因为缺少AccessDatabaseEngine组件所致。首先,打开SQL Server Management Studio,在“对象资源管理器”中依次展开“服务器对象”→“链接服务器”→“访问接口”,查看服务器列表中是否有“”。如果没有,说明缺少相关组件,需要进行安装并进行相关设置。
如果已经存在相应组件,但仍然无法正常导入xlsx文件,则可以跳过此步骤继续下一步解决。
解决方法二:确定系统环境
首先要确定你的电脑操作系统是64位还是32位(右键点击“我的电脑”,选择“属性”),然后确定已安装的Office套件的位数。如果操作系统是32位,那么Office也一定是32位,可以直接进行下一步。如果系统是64位,而你不知道Office是多少位的,可以先运行Excel程序,然后打开任务管理器(快捷键Ctrl Alt Esc),找到Excel的进程。如果进程后面没有“(32位)”字样,那么Office就是64位的。
解决方法三:安装AccessDatabaseEngine组件
直接搜索并下载最新的Microsoft Access Database Engine,并选择正确的位数版本进行下载和安装。如果操作系统是32位的,直接下载32位版本。如果操作系统是64位的,如果Office是32位,则下载32位版本。如果Office是64位,则下载64位版本。务必注意选择正确的版本避免错误安装。
安装完成后,进行正确的设置。
解决方法四:正确设置程序
首先,在系统服务中找到SQL Server,右键点击并选择“属性”,在“登录”选项卡中将“登录身份”设置为“本地系统账户”。
接下来,在SQL Server Management Studio中找到访问接口中的,右键点击并选择“属性”,确保“动态参数”和“允许进程内”都被选中。
完成以上设置后,进行下一步,这一步往往容易被忽略。
解决方法五:尝试导入数据
在SQL Server Management Studio中,右击某个数据库,选择“任务”→“导入数据”,选中要导入的xlsx表格文件,并选择正确的Excel版本。如果安装的是 12.0,选择2007-2010;如果安装的是 16.0,选择2016。
点击下一步时,可能会出现“外部表不是预期的格式”的错误。不要慌,既然没有提示缺少组件,那么刚才的安装应该是成功的。问题可能出在某个设置上。此时,先打开需要导入的Excel表格,然后再尝试导入,通常可以成功导入。
如果仍然无法解决问题,请继续阅读下一步。
解决方法六:使用64位的导入导出数据工具
如果你安装的SQL Server Management Studio版本是18.x,并且不管你的SQL是64位还是32位,SSMS都是32位的,但你的电脑中安装的Office是64位的,那么就无法正确识别AccessDatabaseEngine组件。
这种情况下,你只需要找到64位的导入导出数据工具并手动运行即可。
具体操作如下:打开Windows开始菜单,找到Microsoft SQL Server的目录,一般是Microsoft SQL Server 2017。点开目录,你会发现有两个“导入和导出数据”工具。将鼠标移动至相应条目上,查看是32位还是64位。手动运行64位的导入导出工具,然后按照第五步的方法进行导入。
解决方法七:安装32位的AccessDatabaseEngine组件
如果你的Office是64位的,但你更习惯直接在SSMS中使用导入导出工具,那么你可以安装低版本的32位AccessDatabaseEngine组件。例如,如果你的Office是2019版64位的,可以安装Microsoft Access Database Engine 2010(对应 12.0)32位版本。安装完成后,在SSMS的服务器访问接口列表中可能看不到对应项,但按照第五步的方法仍然可以成功导入数据。