如何将SQL查询导出到Excel文件尚不存在的Excel?

我做了一个深入的search,似乎无法find答案。

我想将SQL查询导出到Excel并将其返回(Excel)到客户端应用程序或我的Web服务。 (考虑类似于FOR XML概念,而是返回二进制Excel数据)

我testing了这个(经过一个漫长的斗争),它终于正常工作:

 INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\1.xls;', 'SELECT * FROM [Sheet1$]') SELECT TOP 5 ID, ItemName FROM dbo.MyItems 

并返回给客户:

 SELECT * FROM OPENROWSET(BULK N'D:\1.xls', SINGLE_BLOB) rs 

但是,文件D:\1.xls必须在高级中已经存在 。 我已经阅读了这个接受的答案: T-SQL:导出到新的Excel文件

4如果您不想提前创buildEXCEL文件并想要将数据导出到其中,请使用EXEC sp_makewebtask

sp_makewebtask已弃用。

有没有办法,我可以做这个任务,没有一个已经存在的文件? 或者至less在导出之前dynamic创build一个合适的文件? 甚至更好: 根本不使用任何文件

谢谢。

也许你可以在打电话之前尝试做这样的事情:

 xp_cmdshell "echo . > D:\1.xls" 

它看起来像你的代码的目的是将前5个项目名称移动到另一个表? 如果是这样的话,你所需要的就是into

 SELECT TOP 5 ID, ItemName INTO dbo.Othertable FROM dbo.MyItems