我正在尝试将数据从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上运行我的查询。
有什么建议吗?非常感谢你
答案 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