如何将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