【发布时间】:2013-12-03 19:32:58
【问题描述】:
我有一个名为 tblAccounts 的表,其内容将来自 Excel 电子表格。
我在 Windows 8.1 (x64) 上使用 MS SQL Server 2008 (x64)
我尝试使用 SQL Server 导入/导出向导,但没有选择现有表的选项,只有创建新表的选项。
我尝试使用其他方法,例如 OPENROWSETS
INSERT INTO tblAccount SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'Excel 12.0;Database=D:\exceloutp.xls','SELECT * FROM [Sheet1$]')
但给了我一个错误:
消息 7308,第 16 级,状态 1,第 1 行 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。
一些研究告诉我,这是由于 SQL Server 的 64 位实例而发生的。
问题在于,必须仅使用 SQL 导入/导出向导来完成向 SQL 表的 Excel 数据传输。
如何在不创建新 SQL 表的情况下将 Excel 电子表格导入现有 SQL 表?
我访问了一些链接,但无法帮助我解决问题:
【问题讨论】:
-
为什么不导入一个新的临时表,然后“选择”你想要的实际表?
-
我非常喜欢 Brennan 先生的建议,但我们只能使用 SQL Server 导入/导出向导。是否可以通过上述向导?谢谢!
-
我已经使用
bcp Utilitymsdn.microsoft.com/en-us/library/ms162802.aspx 做了同样的事情,但我从未尝试导入/导出 excel 文件。你可以检查一下。
标签: sql sql-server excel sql-server-2008 import