使用T-SQL从SQL Server 2008进行具有不确定表结构的编程导出

时间:2013-01-04 20:55:01

标签: sql sql-server-2008 tsql ssis export

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

SSIS显然是这方面的标准解决方案。我不太了解SSIS是否知道它是否会处理我想要它做的事情,但是我被告知这些查询的数量/输出的数量太多,这是一个可行的解决方案。

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

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

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

答案似乎是否。

1 个答案:

答案 0 :(得分:0)

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