如何在SSIS包中的现有任务之间插入新的控制流任务?

时间:2011-05-24 19:37:11

标签: ssis

是否可以在SSIS包中的两个现有任务之间插入数据流任务?

我的数据流非常好。在测试数据流逻辑期间,我发现在现有数据流之间需要额外的数据流任务。

是否可以在现有任务之间插入新任务?

1 个答案:

答案 0 :(得分:3)

解决方案:

您需要删除连接两个控制流任务的 Precedence Constraint ,然后将新任务拖放到两个现有任务之间。将优先约束从第一个任务连接到新任务,将优先约束从新任务连接到现有第二个任务。

Precedence Constraint 是两个控制流任务之间的箭头,表示流的方向。该箭头可能会显示在 green red blue 颜色中,具体取决于以下条件引导流动。

注意:

如果 Precedence Constraint 上有表达式,则必须在删除优先约束之前记下表达式。在引入新任务后,您可能需要再次使用该表达式。

SSIS 2012包说明了步骤:

假设您有一个名为 SO_6115881.dtsx 的SSIS包。在包中,“控制流”选项卡上有两个数据流任务。下面显示的屏幕截图表明Precedence Constraint(绿色箭头)没有表达式或约束。

Two Data Flow Tasks without expression

如果在 Precedence Constraint 上定义了表达式,则字母fx将出现在优先约束上。

Two Data Flow Tasks with expression

您可以双击优先约束以查看 Precedence Constraint Editor ,以记下所使用的表达式。这里,优先约束使用表达式@[User::IsValid] == True来验证包变量@[User::IsValid]是否计算为true。

Precedence Constraint Editor

假设现有的两个控制流任务之间没有表达式。要删除优先约束,请单击它并按删除或右键单击优先约束,然后单击 Delete

Delete Precedence Constraint

删除优先约束后,将下一个控制流任务拖放到两个现有任务之间。从任务Data Flow Task 1拖动优先约束,并将其连接到新任务New Data Flow Task

Connect first task to second task

从新任务New Data Flow Task拖动优先约束,并将其连接到任务Data Flow Task 2。您现在应该在两个现有任务之间成功添加新的控制流任务。如果您有表达式,请双击相应的优先约束以添加表达式。

Control Flow tab with new task