能否请你让我知道如何提取查询结果到Excel工作表中的SQL服务器,如何提取查询结果直接向.xlsx文件
我的查询是批处理作业,所以我必须保持我的所有在Excel表格中查询结果,稍后我会做FTP。
请问我有没有办法在SQL Server中做。
注: - 不使用结果的管理工作室文件,我需要使用任何脚本在SQL
能否请你让我知道如何提取查询结果到Excel工作表中的SQL服务器,如何提取查询结果直接向.xlsx文件
我的查询是批处理作业,所以我必须保持我的所有在Excel表格中查询结果,稍后我会做FTP。
请问我有没有办法在SQL Server中做。
注: - 不使用结果的管理工作室文件,我需要使用任何脚本在SQL
试试这个就知道了, 首先启用特设分布式查询
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
导出结果查询到Excel文件
DECLARE @STR_QUERY AS NVARCHAR(MAX)
DECLARE @FILE_ATT_PATH NVARCHAR(50) ='D:\MYEXCEL'+REPLACE(CONVERT(VARCHAR,GETDATE(),113),':','')+'.XLS';
SET @STR_QUERY =
N'INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database='+ @FILE_ATT_PATH +';'',''SELECT CusSName FROM [Sheet1$]'')
SELECT CusSName FROM [dbo].[MasterCustomer]'
EXEC sp_executesql @STR_QUERY
尊敬的先生:感谢您的回复,我收到了错误消息: - 消息7308,级别16,状态1,行1 OLE DB提供程序'Microsoft.Jet.OLEDB.4.0'不能用于分布式查询,因为提供程序被配置为以单线程模式运行。 – Kumar
首先,您已经运行导出结果查询到Excel文件之前运行启用Ad Hoc分布式查询? – taotechnocom
我这样做,先生,但仍然没有输出,我得到相同的错误信息,请帮助我 – Kumar
我无法直接从SQL脚本知道。执行此操作的两种最常见方法是创建使用SQL Server Data Tools或使用Powershell脚本创建的SSIS包。 –