2016-07-01 24 views
0

能否请你让我知道如何提取查询结果到Excel工作表中的SQL服务器,如何提取查询结果直接向.xlsx文件

我的查询是批处理作业,所以我必须保持我的所有在Excel表格中查询结果,稍后我会做FTP。

请问我有没有办法在SQL Server中做。

注: - 不使用结果的管理工作室文件,我需要使用任何脚本在SQL

+1

我无法直接从SQL脚本知道。执行此操作的两种最常见方法是创建使用SQL Server Data Tools或使用Powershell脚本创建的SSIS包。 –

回答

0

试试这个就知道了, 首先启用特设分布式查询

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 
+0

尊敬的先生:感谢您的回复,我收到了错误消息: - 消息7308,级别16,状态1,行1 OLE DB提供程序'Microsoft.Jet.OLEDB.4.0'不能用于分布式查询,因为提供程序被配置为以单线程模式运行。 – Kumar

+0

首先,您已经运行导出结果查询到Excel文件之前运行启用Ad Hoc分布式查询? – taotechnocom

+0

我这样做,先生,但仍然没有输出,我得到相同的错误信息,请帮助我 – Kumar

相关问题