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

标签 ssis

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

我的数据流状况良好。在测试数据流逻辑时,我发现我需要在现有的数据流任务之间添加一个额外的数据流任务。

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

最佳答案

解决方案:

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

优先约束是两个控制流任务之间的箭头,表示流的方向。箭头可以显示为绿色红色蓝色 颜色取决于用于引导流动的条件。

警告:

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

SSIS 2012 包说明步骤:

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

Two Data Flow Tasks without expression

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

Two Data Flow Tasks with expression

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

Precedence Constraint Editor

假设两个现有控制流任务之间没有表达式。要删除优先约束,请单击它并按 Delete 或右键单击优先约束并单击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

关于ssis - 如何在 SSIS 包内的现有任务之间插入新的控制流任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115881/

相关文章:

c# - 使用 C# 将完整结果集变量中的数据获取到脚本任务

sql - SSIS 如何将数据流数据存储在临时表中,然后将其附加到电子邮件中?

sql-server - 如何从 SQL Server 导出到 XML

ssis - 如何导入具有自关系的表

Azure 中的 C# 脚本源等效/替代?

c# - 如何使用 C# 在字符串中添加尾随零?

SSIS 从 CSV 派生列(将字符串转换为 float )

使用 UNC 路径的 SQL BULK INSERT

rounding - SSIS 数据转换数字强制舍入

ssis - 包的 DTexec/ISSERVER 路径