在SSIS包中,我有一个For循环容器任务,EvalExpression设置为true(因此它永远运行).如果For循环容器内的任何任务失败,则包必须失败 - 执行包任务(调用子包)除外.如果失败,则父包应转移到下一个任务.
我尝试将Execute Package任务的MaximumErrorCount设置为0,但这没有帮助.我尝试将For循环容器任务的MaximumErrorCount设置为0,但忽略了For循环容器任务中所有任务的错误.
任何想法如何我只能在Forcute Container中的Execute Package任务中忽略错误.
答案是对应该导致程序包停止的所有任务使用FailPackageOnFailure属性,并将For循环容器任务的MaximumErrorCount设置为0.
我在这里得到了答案:http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?&query = Ignore + errors+on+Execute+Package+task+in+SSIS& lang= en&cr=& guid= &SLOC = EN-US&DG = microsoft.public.sqlserver.dts&p = 1&TID = 6406db48-a2cb-4b0d-a124-4892e976a583
更好的方法是转到执行包任务的OnError处理程序,并将System变量"Propogate"设置为false.这将阻止错误向上冒泡到您的循环容器.
转到顶部的"事件处理程序"
在左侧选择所需的"可执行文件:"
转到顶部的"事件处理程序"
在中间单击"单击此处创建'OnError'事件处理程序,用于可执行文件'xxx'
转到"Package Explorer",找到新创建的"OnError"事件 - > Variables - > Propogate
在属性中将值更改为"false"
完成