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

标签 sql-server excel sql-server-2008 tsql

我进行了深入搜索,似乎找不到答案。

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

我测试了这个(经过长时间的努力),它终于可以正常工作了:

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: Export to new Excel file

4 If you dont want to create an EXCEL file in advance and want to export data to it, use EXEC sp_makewebtask


sp_makewebtask已弃用。

有没有办法在没有现有文件的情况下完成这项任务?或者至少在导出之前动态创建一个合适的文件?甚至更好:根本不使用任何文件?

谢谢。

最佳答案

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

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

关于sql-server - 如何将 SQL 查询导出到 Excel 文件尚不存在的 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825993/

相关文章:

vba - 流式传输实时数据时,Worksheet_Change 不会启动

c# - 防止 SQL Server 数据库中重复记录的最佳方法是什么

sql-server - 重命名多个表

sql-server - 存储在 varchar 中的 SQL Server 混合数据类型中的自定义排序顺序

mysql - 如何内连接表?

vba - 在 VBA 上使用当前日期重命名工作表

SQL Server : procedure call, 内联串联不可能吗?

sql - 在VBScript中的sql字符串中使用excels命名范围

sql - 将数据合并在一列中是错误的吗?

SQL 服务器 2008 R2 : Working with XML stored as BLOB (image data type)