繁体   English   中英

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

[英]Programmatic Export with Indeterminate Table Structure from SQL Server 2008 using T-SQL

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

SSIS显然是对此的标准解决方案。 我对SSIS知之甚少,无法知道它是否可以处理我想要的工作,但是有人告诉我查询数量太多/输出太多,以致于不可行。

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

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

当前解决方案我正在编写与某些SQL表和存储过程绑定在一起的PowerShell脚本,以管理执行。 这似乎是一个非理想的解决方案。 我很好奇我是否错过了一些东西。 是否有一种简单的方法来设置SSIS以导出没有结构的数据? 一种快速创建Excel文件并填充数据的方法?

答案似乎是否定的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM