gpt4 book ai didi

sql - SSIS 执行包任务 - 重试子包失败

转载 作者:行者123 更新时间:2023-12-02 04:57:30 25 4
gpt4 key购买 nike

我有一个 SSIS 包,它调用许多执行 ETL 操作的执行包任务

有没有办法配置执行包任务,以便它们重试定义的次数(目前,在子包中的一个任务失败时,执行包任务失败。发生这种情况时,我会就像在放弃和失败父包之前要重试的任务)

我知道的一个解决方案是为数据库中的每个包设置一个标志,在成功时将其设置为定义的值,并在 for 循环容器中调用每个包,直到标志成功或计数超过预定义的重试次数.

是否有更简洁或更通用的方法来执行此操作?

最佳答案

是的,将Execute Package Task 放在For Loop Container 中。定义一个变量,它将进行计数,一个用于成功运行指示器和一个 MAX_COUNT 常数。在 Package Task - Expressions 的属性中,定义

FailPackageOnFailure - False

在执行任务之后放置一个脚本任务 读取/写入变量:SuccessfulRun,脚本:

Dts.Variables["SuccessfulRun"].Value = 1

在 For 循环的属性中:

InitExpression - @Val_Counter = 0
EvalExpression - @Counter < @MAX_COUNT && @SuccessfulRun == 0
AssingExpression - @Val_Counter = @Val_Counter + 1

使用 Success 行将 PackageTask 与 ScriptTask 连接起来。

For Loop Container中定义表达式

MaximumErrorCount - Const_MAX_COUNT

但是这个还没有经过我的测试...

关于sql - SSIS 执行包任务 - 重试子包失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17740054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com