0

我一直在寻找答案,但似乎不存在。问题:网站正在查询数据库并且无法及时返回结果(作为导出到 Excel)。这主要是由于结果集的大小。我想设置一个后台进程来“ping”等待查询并一个接一个地执行它们,将数据转储到要下载的位置。“ping”任务可以通过多种方式处理。我最初的理想解决方案是将数据导出到文件系统的触发器(或者,SQL Server 代理任务)。但是我遇到了一个问题,我不知道如何使用简单的 T-SQL 语句设置到文件系统的无定形输出。

SSIS 显然是对此的标准解决方案。我对 SSIS 知之甚少,不知道它是否会处理我想要它做的事情,但有人告诉我,查询的数量太多/输出种类繁多,这不是一个可行的解决方案。

可以运行 xp_cmdshell 来执行 BCP 导出。这工作正常,但显然打开了一个安全漏洞。

以前的解决方案:我多年前使用的一种解决方案,DTS 将数据直接传递到操作系统,似乎在 SQL Server 2008/2012 中已禁用。我以前也可以使用 sp_makewebtask 将数据直接导出到文件系统,但不再也可以这样做。

当前的解决方案我正在编写一个绑定到一些 SQL 表和存储过程的 PowerShell 脚本来管理执行。这似乎是一个不理想的解决方案;我很好奇我是否错过了什么。有没有一种简单的方法来设置 SSIS 以在没有结构的情况下导出数据?一种即时创建 Excel 文件并用数据填充的方法?

答案似乎是否定的。

4

1 回答 1

0

您可以导出为 CSV 而不是 Excel(因为 Excel 可以轻松打开 CSV 文件),但它们没有任何格式。您可以设置 SSIS(或计划任务中的 BCP)以在 CSV 文件中导出已包含逗号和文本分隔符的单个列,因此 Excel 将在单独的列中显示数据。

于 2013-01-05T12:03:44.157 回答