是否可以在SSIS包中的两个现有任务之间插入数据流任务?
我的数据流非常好。在测试数据流逻辑期间,我发现在现有数据流之间需要额外的数据流任务。
是否可以在现有任务之间插入新任务?
答案 0 :(得分:3)
您需要删除连接两个控制流任务的 Precedence Constraint
,然后将新任务拖放到两个现有任务之间。将优先约束从第一个任务连接到新任务,将优先约束从新任务连接到现有第二个任务。
Precedence Constraint
是两个控制流任务之间的箭头,表示流的方向。该箭头可能会显示在 green
, red
或 blue
颜色中,具体取决于以下条件引导流动。
如果 Precedence Constraint
上有表达式,则必须在删除优先约束之前记下表达式。在引入新任务后,您可能需要再次使用该表达式。
假设您有一个名为 SO_6115881.dtsx
的SSIS包。在包中,“控制流”选项卡上有两个数据流任务。下面显示的屏幕截图表明Precedence Constraint(绿色箭头)没有表达式或约束。
如果在 Precedence Constraint 上定义了表达式,则字母fx将出现在优先约束上。
您可以双击优先约束以查看 Precedence Constraint Editor
,以记下所使用的表达式。这里,优先约束使用表达式@[User::IsValid] == True
来验证包变量@[User::IsValid]
是否计算为true。
假设现有的两个控制流任务之间没有表达式。要删除优先约束,请单击它并按删除或右键单击优先约束,然后单击 Delete
。
删除优先约束后,将下一个控制流任务拖放到两个现有任务之间。从任务Data Flow Task 1
拖动优先约束,并将其连接到新任务New Data Flow Task
。
从新任务New Data Flow Task
拖动优先约束,并将其连接到任务Data Flow Task 2
。您现在应该在两个现有任务之间成功添加新的控制流任务。如果您有表达式,请双击相应的优先约束以添加表达式。