【问题标题】:SSIS - How to execute next Task after For LoopSSIS - For循环后如何执行下一个任务
【发布时间】:2015-09-30 15:21:54
【问题描述】:

我试图在 For 循环容器完成(即执行其迭代)后执行 SQL 任务,但它只是不会执行。我一生都无法弄清楚为什么它不会执行,因为没有错误。有什么想法吗?

循环执行了正确的次数,但从图中可以看出,插入引用操作 SQL 任务没有执行。

这个想法是,如果源记录的数量低于某个阈值,例如2000000 然后只需加载 1 个镜头,否则一次循环 1000000 并加载。这是为了解决我遇到的一些网络和连接问题。

最后一个任务(插入引用操作)执行一个存储过程,该过程将暂存数据与许多相关表连接起来并填充 Fact 表。我需要在 2 个分支之间共享这个 SQL 任务。

感谢您的帮助

【问题讨论】:

  • 您是否尝试在 For 循环中添加脚本任务来显示循环值?此外,如果您可以提供 For 循环中使用的参数的屏幕截图,这可能会有所帮助
  • 没有尝试过脚本任务。我知道循环正在工作,因为我的临时表中有超过 500 万行,所以它正在完成它的工作
  • 我不怀疑它有效,但最好包含一个脚本组件,以便查看与 ReferralActionLoopMaxCount 相比的 ReferralActionLoopiteration 值。
  • 如果您删除“将引用操作加载到暂存中”,插入引用操作是否按预期触发?
  • 前一个任务也没有运行,Load Referral Actions into Staging 没有完成,所以除非你改变运行条件,否则下一个任务不会运行。

标签: ssis etl bids


【解决方案1】:

“Insert Referral action”的逻辑解释是当输入执行成功时才执行。在您的情况下,二分之一的输入是成功的。因此,从技术上讲,“执行 SQL”任务没有执行权限,因为两个输入都不成功。这是您如何做到的 单击优先约束并选择logical OR 而不是Logical AND

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多