【问题标题】:PostExecute not firing in SSIS script componentPostExecute 未在 SSIS 脚本组件中触发
【发布时间】:2025-12-02 20:35:01
【问题描述】:

我在 SQL2012 中有一个源脚本组件。 我相信如果你想在 Scriptcomponent 中设置一个读/写变量,它必须在 Postexecute 方法中设置。我就是这样做的;

    public override void PostExecute()
{
    base.PostExecute();
    Variables.value1 = "some value";
}

我在脚本组件运​​行后测试了变量,发现它没有被设置。我在 PostExecute 方法中设置了一个断点并确认它永远不会被调用。

我什至写了一个非常简单的新包并再次测试它,结果相同。谁能告诉我为什么 PostExecute 不会触发。

我不知道在此处设置变量有任何限制(无论是否有要处理的记录)。

【问题讨论】:

    标签: sql ssis script-component


    【解决方案1】:

    该变量可以在脚本组件中设置,但只能在数据流任务完成后(在下一个任务中)使用。

    【讨论】:

    • 如何防止事件触发?
    【解决方案2】:

    经过一些测试,当您使用脚本组件作为“源”时,PostExecture 事件似乎永远不会触发。工作正常的“转换”。没有测试“目的地”类型。 Microsoft 文档中没有任何内容提及这一事实,因此具有误导性。

    我最终使用 rowcount 控件对记录进行计数。如果我需要更多关于 PostExecture 事件的信息,我不确定我会做什么。

    【讨论】:

      【解决方案3】:

      我已经多次使用脚本组件作为源,但 PostExecute 确实会触发。

      【讨论】:

      • 您可能需要提供一些细节!
      • 这似乎是一个“无法重现”的评论。它肯定不能解决 OPs 问题。对于这种(本身不是不恰当的)评论,请使用评论,而不是答案。 meta.stackexchange.com/questions/214173/…