将执行SQL任务的结果保存到Excel

时间:2013-03-31 13:43:27

标签: sql sql-server ssis sql-server-2008-r2

我正在尝试在SSIS中开发一个包。包的逻辑相对简单:执行查询并将结果集保存在Excel电子表格中。因此,我首先尝试创建如下所示的架构: -              enter image description here   
 我面临的问题是查询使用临时表,OLE DB Source似乎无法解析包含临时表(#table-names)的查询。

所以我尝试在控制流中使用执行SQL任务。这似乎能够执行此查询。但现在我想获取整个结果集并将其保存在动态命名的Excel电子表格中。  我知道创建一个临时表是一个解决方案,但我不能使用它,因为客户不会对它感到高兴。   我已经尝试将结果集保存在变量中,但即使我无法从OLEDB源中读取。   谁能请你给我这个建议。如果您想要任何澄清,请做出评论。

由于

2 个答案:

答案 0 :(得分:0)

我会将临时表逻辑移动到公用表表达式(CTE),例如

WITH CTE_temp AS (
<< select statement that populates your temporary table >>
)
SELECT
<< select statement from your temporary table>>
FROM CTE_temp

CTE可以构建在其他CTE的顶部,并且可以是递归的。通过一些横向思维,他们覆盖了99.9%的临时桌面解决方案。

CTE可以并行运行而不会出现争用问题。它们通常也比临时表解决方案更快。

答案 1 :(得分:0)

这可以使用定义的连接管理器的“RetainSameConnection”属性来实现。 (当您创建临时变量时,连接关闭时临时变量将被删除...)