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