我有一个excel表 .xlsx 扩展名,大约有500,000行和16列。我想在我们在 windows server 2008 R2 下运行的sql server数据库中导入它。所以我在 SQL Server Management Studio 2008 R2 中尝试了以下步骤,但它们不起作用: -
我创建了一个新的数据库,该数据库具有相同的16列+我添加了一个新的ID列,并将其设置为主键。
我选择excel sheet 2007>>浏览文件>>点击下一步>>我收到了这个错误: -
TITLE:SQL Server导入和导出向导
无法完成操作。
------------------------------附加信息:
' Microsoft.ACE.OLEDB.12.0'提供商未在本地注册 机。 (System.Data)
------------------------------按钮:
确定
您可能遇到的问题是导入/导出向导正在进行中 作为32位版本推出。这可能是由于你的权利 单击数据库并单击导入,因为SSMS是a 32位程序将启动32位进程。尝试明确 单击运行导入/导出向导(64位) 开始 - >程序文件 - > Microsoft SQL Server 2012->导入和导出 用于从64位数据源导入数据的数据(64位)。
所以我运行导入/导出向导(64位),但在数据源下拉列表中,我找不到excel表,如下所示: -
INSERT INTO [SalesDataDemo]。[dbo]。[SalesData] select * FROM OPENROWSET(' Microsoft.ACE.OLEDB.12.0',' Excel 12.0;数据库= c:*****。xlsx; HDR =是',' SELECT * FROM [Sheet1 $]')
但我收到了这个错误: -
Msg 7403,Level 16,State 1,Line 1 OLE DB提供程序 " Microsoft.ACE.OLEDB.12.0"尚未注册。
所以有人可以在我的sql server 2008 r2数据库中导入我的.xlsx文件吗?
最后注意,现在SQl服务器我正在尝试在其中导入,没有安装Excel工作表或办公室..所以这可能是问题吗?
答案 0 :(得分:1)
访问Microsoft的网站并下载Microsoft Access Database Engine 2010 Redistributable。安装它并将以下设置导入注册表。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\Providers\Microsoft.ACE.OLEDB.12.0]
"AllowInProcess"=dword:00000001
"DynamicParameters"=dword:00000001
"DisallowAdhocAccess"=dword:00000000
我认为应该允许您导入电子表格。
答案 1 :(得分:0)
After you install ACE,如果仍然出现此错误,请尝试从下拉列表中选择其他Excel version
。听起来很傻,但实际上,请尝试每个。导入向导似乎不能很好地猜测您已安装了哪些驱动程序。
答案 2 :(得分:0)
您必须安装64x导入导出向导。我搜索然后发现了这个;
注意 若要使用64位版本的SQL Server导入和导出向导,必须安装SQL Server。 SQL Server数据工具(SSDT)和SQL Server Management Studio(SSMS)是32位应用程序,只能安装32位文件,包括32位版本的向导。
如果仅从SQL Serverİnstallation向导安装SQL工具连接,现在即可将Excel导入到SQL
[您可以在此页面中阅读1