将数据从SQL Server查询导入Excel

本文关键字:查询 导入 Excel Server SQL 数据 | 更新日期: 2023-09-27 18:20:42

我找到了一些将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"无法用于分布式查询,因为该访问接口已配置为在单线程单元模式下运行。

将数据从SQL Server查询导入Excel

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

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

AccessDatabaseEngine.exe /passive

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

FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:'path'sheet.xlsx', [Sheet1$])

您应该了解一下Pinal Dave的解决方案。此外,可能你有x64机器,所以它不会工作,因为驱动程序不可用。看看这个答案。