我正在使用新的项目部署模型。
我有一个名为 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 包,我刚刚完成升级到 SSIS for SQL Server 2012(在 Visual Studio 2012 中),并转换为项目部署模型。
最初,执行在变量赋值行终止(经过长时间的延迟)。但后来我添加了“User::”前缀,这显然对于至少一个但不是我以这种方式分配的所有变量是必需的。前缀是not在 SQL Server 2008 的 SSIS 中是必需的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)