将数据从Excel文件导入SQL Server

时间:2016-11-04 12:01:40

标签: sql sql-server tsql

我正在尝试将数据从EXCEL文件导入SQL SERVER。当我运行此查询时

SELECT * INTO EXCEL_IMPORT
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\af\Desktop\Reports\Jan_2016_Ships.xlsx; HDR=YES; IMEX=1',
'SELECT * FROM [Sheet1$]');

我收到此错误

The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered

所以我需要安装这个驱动程序,但在做了一些搜索后我发现了这个:

  

安装Microsoft.ACE.OLEDB.12.0驱动程序

     

将Excel 2007-2016文件导入SQL Server Microsoft.ACE.OLEDB.12.0   应该安装驱动程序。

     

要下载驱动程序,请使用以下链接:

     

Microsoft Access数据库引擎2010可再发行组件

     

不要担心"访问"在名称中。

     

警告!如果是Microsoft Office 2007-2016,则无法安装x64驱动程序   x86已经安装好了!

     

因此无法使用将Excel数据导入SQL Server x64   OPENROWSET / OPENDATASOURCE在具有Microsoft Office的计算机上运行   86!

所以我无法安装此驱动程序,因为我有SQL SERVER x64和Microsoft Office x86。我不想使用简单的导入向导,因为我有很多表,我需要检查列的数据类型......在我的情况下,这将是非常耗时的。

我相信应该有一个解决方案来在SQL SERVER x64和Microsoft Office x86上运行我的查询。

有什么建议吗?非常感谢你

4 个答案:

答案 0 :(得分:1)

将数据导入/导出到SQL Server的最佳方式是SQL Server中的导入/导出向导工具。

请参阅以下链接。

http://searchsqlserver.techtarget.com/feature/The-SQL-Server-Import-and-Export-Wizard-how-to-guide

谢谢。

答案 1 :(得分:0)

如果只运行一次,可以在SSIS包中运行查询并将解决方案更改为32位模式(右键单击解决方案,属性,调试,run64bitRuntime = false)

答案 2 :(得分:0)

您的系统中是否安装了microsoft excel? 这可能会解决你的问题。

您也可以通过SQL管理工作室手动导入到表中。

右键点击数据库>任务>导入数据

答案 3 :(得分:0)

看起来您正在将32位驱动程序与64位驱动程序混合使用。这是一个很大的诺诺。这两个资源可能是您最好的起点。

http://www.cnblogs.com/anorthwolf/archive/2012/04/25/2470250.html

http://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm