2013-03-31 50 views
1

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

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

由于

+0

您可以使用临时表吗?不要创建临时表,请截断登台表。其他一切应该是一样的。 –

+0

@ Dan->没有朋友:(不允许在服务器上创建任何数据库对象 – Sparky

+0

您可以让dba为您完成吗? –

回答

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可以并行运行而不存在争用问题。它们通常比临​​时表解决方案还要快。

0

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