gpt4 book ai didi

SSIS 2012通过项目部署模型将子包中的值传递给父包

转载 作者:行者123 更新时间:2023-12-04 03:04:20 25 4
gpt4 key购买 nike

我正在使用新的项目部署模型。

我有一个称为ETL的主程序包。我的ETL软件包所做的第一件事是运行一个名为get SFTP files的软件包,如图所示。

在获取SFTP文件中,一个foreach循环获取ClientID。我如何将此值传递回父包ETL ???做插入等

最佳答案

这是一种将值从子包变量传递到父包变量的方法。

脚本任务:(在子程序包中)

// Populate collection of variables.
// This will include parent package variables.
Variables vars = null;
Dts.VariableDispenser.GetVariables(ref vars);

// Lock the to and from variables.
Dts.VariableDispenser.LockForWrite("User::MyParentPackageVar");
Dts.VariableDispenser.LockForRead("User::MyChildPackageVar");

// Apparently need to call GetVariables again after locking them.
// Not sure why - perhaps to get a clean post-lock set of values.
Dts.VariableDispenser.GetVariables(ref vars);
vars["User::MyParentPackageVar"].Value = vars["User::MyChildPackageVar"].Value;

vars.Unlock();

该代码实际上来自2012年之前的SSIS程序包,我刚刚完成了对SQL Server 2012的SSIS升级(在Visual Studio 2012中),并转换为项目部署模型。

最初,执行在变量分配行上终止(经过长时间的延迟)。但是,然后我添加了“User::”前缀,这显然是至少一个但不是我通过这种方式分配的所有变量所必需的。在SQL Server 2008的SSIS中,前缀不是必需的。

关于SSIS 2012通过项目部署模型将子包中的值传递给父包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com