2

我正在尝试在 SSIS 中开发一个包。该包的逻辑比较简单:执行一个查询并将结果集保存在一个excel电子表格中。因此,我首先尝试创建如下所示的体系结构:-
在此处输入图像描述
我面临的问题是查询使用了临时表,而 OLE DB 源似乎无法解析包含临时表的查询(#table-names )。

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

谢谢

4

2 回答 2

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 可以并行运行而不会出现争用问题。它们通常也比临时表解决方案更快。

于 2013-04-03T06:52:09.457 回答
0

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

于 2013-12-12T12:23:51.013 回答