我有一个名为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位实例。
问题在于,此Excel数据到SQL表的传输必须仅使用SQL导入/导出向导来完成。
如何在不创建新电子表格的情况下将Excel电子表格导入现有的SQL表?
我访问了一些链接,但无法帮助我解决问题:
Saudate,我遇到了另一个问题。您绝对可以使用Sql Server导入向导将数据导入到新表中。当然,您不希望将该表保留在数据库中,因此我的建议是先导入一个新表,然后在查询管理器中将数据编写脚本以插入到现有表中。您可以添加一行以删除导入向导创建的临时表,这是成功完成脚本后的最后一步。
我相信您的原始问题实际上与Sql Server 64位有关,并且是由于您拥有32位Excel而这些驱动程序不能很好地配合使用。第一次使用64位excel时,我确实遇到了非常相似的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句