我对SSIS比较陌生。我有两个脚本任务。如果任一任务失败,则错误处理逻辑是相同的。无论第一个脚本任务是否失败,第二个脚本任务都必须始终执行。
我创建了上面的内容,如下面的图片链接所示。但是,似乎错误处理程序任务只执行一次。因此,如果两个脚本任务都以错误终止,则不会对第二个脚本任务执行错误处理程序(可能是因为它已在第一个脚本任务之后执行。
无论如何要实现这一点,或者我只需要为两个脚本任务复制错误处理程序任务。
请参阅下面的SSIS图像
答案 0 :(得分:4)
您需要复制任务才能执行两次。
将此事件触发两次而只定义一次的一种方法是设置事件处理程序。
要执行此操作,请导航至“事件处理程序”'标签
您会在右侧看到一个下拉列表,您可以在其中选择事件处理程序类型。在这里,您可能需要OnTaskFailed
或OnError
。 OnTaskFailed
每个失败的任务触发一次,而OnError
触发任务中发生的每个错误。
在左侧,您可以选择可执行文件,它允许您为事件处理程序定义范围。如果将此范围限定为包,则将为包中的每个任务执行事件处理程序。如果您的包中的任务多于您在帖子中显示的两个脚本任务,并且您只希望它为这两个脚本任务触发,您可以将它们放入序列容器(在控制流中),然后将事件处理程序作用于该序列容器。
然后,只需单击窗格中间的文本即可创建处理程序,并在那里添加必要的任务(它的工作方式与控制流类似)。
现在将为两个任务执行事件处理程序。
还值得一提的是,在这些处理程序中,您可以使用许多有用的系统变量,例如System::ErrorDescription
中的OnError
。
我所描述的内容将如下所示: