2

我找到了一些将数据从 SQL Server 查询导入 Excel 的方法,如下所示,但它们似乎都不起作用

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
      'Excel 8.0;Database=D:\testing.xls;', 
      'SELECT * FROM [SheetName$]') select * from tblName

错误:

OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为提供程序配置为在单线程单元模式下运行。

4

3 回答 3

1

如错误消息所示,SQL Server 将无法使用此方法将数据传输到 Excel。一种不需要编程的可能解决方案:打开 Excel,单击数据选项卡,从其他来源,SQL Server。将打开一个窗口提示输入服务器名称,提供用反斜杠分隔的服务器名称和实例名称。示例:localhost\sqlexpress(如果您在您的 PC 上运行 sql server express 版本,否则您安装 SQL Server 的任何服务器以及实例名称)。通过提供您在 SQL Server 中定义的用户 ID 和密码进行身份验证,或者只需单击 Windows 身份验证。然后您将有机会选择表格名称。然后,数据将被传输到 Excel 表格中,您可以通过右键单击它来随意刷新该表格。请,

于 2013-07-01T05:36:07.383 回答
0

如果您有 32 位 Office 并且不想卸载它,请尝试从 microsoft(64 位)安装最新的 AccessDatabaseEngine。要在不卸载 32 位版本的情况下安装它,请转到命令行中的下载目录并写入

AccessDatabaseEngine.exe /passive

然后在 SSMS 中,您可以使用代码导入 Excel:

FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\path\sheet.xlsx', [Sheet1$])
于 2013-07-01T05:35:45.490 回答
0

你应该看看Pinal Dave 的解决方案。此外,可能您有 x64 机器,因此由于驱动程序不可用,它无法工作。看看这个答案

于 2013-07-01T05:40:28.460 回答