SSIS中的参数绑定

5
如何使用Execute Package Task动态地将值传递给子包变量?
我需要从一个包(父包)并发地调用另一个包(子包)。在每次调用中,我需要向子包变量传递不同的值。
我尝试使用Execute Package Task中的参数绑定,但是我犯了一些错误。它没有按预期传递值,只传递空值。
例如:
一个父包和一个子包。运行相同的子包的3个不同任务。我想从父包传递3个不同的变量到单个子包变量。
提前感谢您。

你是否检查了父包中的变量是否包含了预期的值? - JodyT
我不知道我在这里做得好不好。你能不能在一个平面文件中更新父包的参数值,让子包从同一个文件中获取这些值,当后者开始时呢? - KrazzyNefarious
我同意@BhupeshC。如果您通过数据库表中的控制记录更新,那将更容易。 - MiguelH
@JodyT:是的,变量具有预期值。 - vignesh
1个回答

9
为了将一个变量从父包传递到子包,您可以使用包配置
在您的父包中,创建要从中传递值的变量。我们称其为varParent。现在,使用一个Execute Package任务来引用子包。您不需要任何参数绑定。
在您的子包中,创建将从父包接收值的变量 - varChild。右键单击控制流中的空白处,选择属性。在Misc下滚动到Configurations并单击带有三个点的按钮。
勾选“启用包配置”,然后单击添加。Package Configuration Wizard会打开。单击下一步。 在Configuration type中,选择父包变量。在Parent variable字段中输入varParent。单击下一步。
在显示的树形文件夹结构中,展开Variables、varChild、Properties并选择Value。单击下一步。 enter image description here 给您的配置命名并单击完成。关闭Package Configurations Organizer。
现在,您的varChild将获得来自varParent的值。

如果我不想为将来要传递的每个值创建一个变量怎么办? 例如,如果我要执行相同的包100次,每次都需要指定不同的参数值。我不想创建100个变量。 我可以创建一个变量,然后在每个包执行后添加一个表达式任务来更新其值,但如果可能的话,我想避免这样做。 - Dina Kleper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接