无法使用 SSIS 中的临时表

问题描述 投票:0回答:1

我在控制流中有两项任务。第一个任务是在序列容器中并创建多个全局临时表。第二个任务使用这些临时表。这两个任务都在“执行 SQL 任务”中。它们都使用本机 OLE DB\SQL Server Native Client 11.0 驱动程序连接到 SQL Server。我将这两个属性都设置为 true。延迟验证并保留相同的连接。

当第一个序列容器运行时,我看到临时表在处于“黄色”或运行状态时通过 Management Studio 窗口创建。一旦第一个任务完成,它们就会变成绿色(完成),下一个任务将无法使用这些全局临时表。我也无法在管理工作室中看到这些表格了。

如何保留这些临时表,以便它们可以在后续任务中的同一 dtsx 任务中使用

我已经在上面解释过了

ssis ssis-2012
1个回答
0
投票

正如布拉德和你所写的那样,看来你做的一切都是正确的。

让我们尝试基本的复制,并让我知道这在您的环境中是否有效。我们将有一个两个任务包,都执行 SQL 任务

创建 OLEDB 连接管理器,并将

RetainSameConnection
设置为
True

SQL 创建全局临时值

第一个执行sql任务会创建全局临时表

DROP TABLE IF EXISTS ##SO_77411558;
CREATE TABLE ##SO_77411558
(
   Col1 int
);

SQL 使用全局临时值

在第二个执行 SQL 任务中,我们将向表中添加一行

INSERT INTO ##SO_77411558
SELECT 3;

此时,我已经全面接受果岭了。

如果我在第二个执行 SQL 任务之后添加一个空的序列容器并在其上放置一个断点

然后我可以验证全局表是否保留,因为包尚未完成

sqlcmd -S .\dev2017 -E -d tempdb -Q "SELECT T.name FROM sys.tables AS T WHERE T.name like '%SO%'"
name
-----------------
##SO_77411558

(1 rows affected)
© www.soinside.com 2019 - 2024. All rights reserved.