Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将Excel导入SQL Server_Sql Server_Excel_Ms Access 2010 - Fatal编程技术网

Sql server 将Excel导入SQL Server

Sql server 将Excel导入SQL Server,sql-server,excel,ms-access-2010,Sql Server,Excel,Ms Access 2010,我正在尝试为用户构建一个导入实用程序,以便将Excel文件导入SQL Server 2017 我遇到了OLEDB提供商的32位/64位障碍 我使用的是32位Microsoft Access前端,SQL Server是64位。您不能同时安装64位和32位ACE OLEDB提供程序。微软甚至为这个问题构建了两个不同的导入/导出向导(一个用于32位,一个用于64位) 是否有人知道解决此问题的方法,或者从不依赖OLEDB提供程序的Microsoft Access前端将Excel数据导入SQL Serve

我正在尝试为用户构建一个导入实用程序,以便将Excel文件导入SQL Server 2017

我遇到了OLEDB提供商的32位/64位障碍

我使用的是32位Microsoft Access前端,SQL Server是64位。您不能同时安装64位和32位ACE OLEDB提供程序。微软甚至为这个问题构建了两个不同的导入/导出向导(一个用于32位,一个用于64位)

是否有人知道解决此问题的方法,或者从不依赖OLEDB提供程序的Microsoft Access前端将Excel数据导入SQL Server的替代方法?(另存为文本文件不是选项,安装64位Office也不是选项)


谢谢

我认为批量插入将帮助您解决此问题。请参见此处

我们提供了一个解决方案,您可以使用它构建解决方案,让最终用户直接从Excel插入和更新SQL Server中的数据

您可以下载一个功能齐全的试用版


免责声明:我是公司的创始人。

您可以使用SSIS软件包将EXCEL文件加载到SQL Server中。您可以有数据流任务,也可以有Excel源和Sql server目标

更新
如果存在64位、32位相关问题,可以使用dtexec.exe在32位运行时执行SSIS包。详细信息

你可以

通常,服务器和桌面计算机将已经安装32位OFFICE驱动程序。所以,你不应该有问题。如果需要,您需要以64位运行dtexec.exe。您可以相应地下载dtexec.exe


看起来这是针对文本文件而不是txt文件,在我的例子中,我使用此方法上载了一个*.csv文件,转到文档页面,看看如何使用它来适应您的情况!csv是一个文本文件。我在互联网上看不到任何使用此导入excel文件(.xls/.xlsx扩展名)的内容。您可以尝试,而不是测试!但是csv有什么问题吗?谢谢。以前见过,没用。你最终破坏了Access,这样它就不会启动了正如刚才所说,当时Access和SQl Server在同一台机器上。我现在在两个不同的虚拟机上有了SQL Server和access,我将有一个Play。我相信有一个开源项目叫做OpenXml,它适用于xlsx文件。有一个收费很低的工具,我不记得它的名字了,比如csvreader(它可以处理大多数excel文件,具体取决于文件的来源)。我使用了这些工具的组合来自动创建表和导入所有类型的excel和csv/文本。当我使用导入导出向导(某些文件为32版本,其他文件为64位版本,不实用)并查看记事本中的.dtsx文件时,它与我使用的OLEDB连接字符串相同,所以不能克服64位/32位的问题,除非我丢失了something@Tim,我已经更新了答案。您可以在32位运行时使用dtexec.exe执行包。这是否仍需要在服务器上安装32位驱动程序?@Tim,我已更新了答案。您通常不需要在服务器上安装32位驱动程序。驱动程序将与服务器和台式机一起出现。