2

我有一个 SSIS 包,其中 1 条记录(硬编码)流经。

在此处输入图像描述

我在 DFT 范围内有变量。

在此处输入图像描述

我使用行计数转换为变量赋值。

在此处输入图像描述

该值应该是 1 我通过使用脚本组件来验证它。

 public override void PostExecute()
  {
    System.Windows.Forms.MessageBox.Show(ReadWriteVariables[0].Value.ToString());
    base.PostExecute();
    /*
      Add your code here for postprocessing or remove if not needed
      You can set read/write variables here, for example:
      Variables.MyIntVar = 100
    */
  }

我通过条件拆分转换中的条件寻找零条件。

在此处输入图像描述

奇怪的是,它满足等于零条件 whrease 我认为它应该具有值 1。甚至通过脚本组件的 Messagebox 显示值 1。

在此处输入图像描述

可能是什么原因?变量中的值是否仅在 DFT 结束时实现或条件拆分在读取正确值或其他我无法想出的问题时出现问题?

4

2 回答 2

4

variable在 a 中分配的值data flow task不能split transformation在 Data Flow 任务中或以后使用。populated一旦 DFT 得到,这些值通常会得到completed

Variable values does not update during the execution of Data Flow task 

即使您能够在执行后或执行前事件中查看value 1或设置其他值以Variable从脚本转换中获取,这些值也仅在执行后生效DFT

因此,更新后的值可以用于优先约束或控制流中的其他任务。

阅读这篇文章。

于 2013-03-13T12:48:39.187 回答
0

或者,您可以使用 RANK 函数作为列之一,后者使用带 max 函数的条件拆分来获取所选行数(直接为行数)。接下来,您可以在插入最终目的地之前使用 Copy 列并删除 RANK 列。希望这可以帮助!

于 2014-12-09T14:33:20.800 回答