我有一个 SSIS 包。我为任务的不同行为设置了几个处理程序。我的问题是:特别是一项任务,如果它失败了,我希望它跳过其他一些任务并继续前进。因此,我想为该特定任务设置 OnError 以便它跳转到其他任务。我怎么能说处理程序内部的 SSIS 继续执行特定任务?
我想跳到控制流中的另一个任务。
我有一个 SSIS 包。我为任务的不同行为设置了几个处理程序。我的问题是:特别是一项任务,如果它失败了,我希望它跳过其他一些任务并继续前进。因此,我想为该特定任务设置 OnError 以便它跳转到其他任务。我怎么能说处理程序内部的 SSIS 继续执行特定任务?
我想跳到控制流中的另一个任务。
你不能对 SSIS 这么说,你必须用优先约束来实现它。示例:假设您有任务 A -> B -> C -> D 并且如果 B 失败,您不希望 C 执行,您可以这样做:
请注意虚线,您需要将优先级设置为 OR 否则 D 只有在 B 成功和失败时才会执行,这是不可能的
SSIS 包上的控制流任务根据包中描述的流程执行。假设您有两个任务, aScript Task
和 a Data flow task
。这里的两个任务是相互关联的。脚本任务被故意编码为失败。当它这样做时,包将在该点停止执行,因为它的结构是仅在脚本任务成功执行时才执行数据流任务。
您可以右键单击脚本任务和数据流任务之间的连接器/优先级约束并将其从 更改Success
为Completion
。这意味着它指示包在Data Flow Task
脚本任务完成时执行,无论它是失败还是成功。
现在,如果您运行包,即使脚本任务失败,它也会执行数据流任务。
您也可以有多个这样的流程。您所要做的就是右键单击任务之间的连接器/优先级约束,然后选择正确的状态来决定包应该执行的路径。
希望有帮助。