SSIS将结果集从数据流设置为变量

Pix*_*ted 11 ssis ssms sql-server-2008

在我给自己某种压力相关的心脏病发作之前.

有谁知道如何完成看似简单的任务设置一个数据流任务的结果集(结果将是0或1)并将该值分配给变量.

我创建了变量ok.

结果集来自具有多个元素的XML文件.标志(0或1)是其中一个元素的结果,因此我还需要知道如何将结果集作为该标志.

如果有人可以提供帮助,我真的很感激.

更新:我最终将结果(0,1)读回SQL Server进入标志表.然后使用Execute SQL脚本将其从SQL Server读取回变量.不确定这是否是完成它的最佳方式,但似乎已经完成了这个伎俩.

bob*_*obs 10

您可以使用数据流脚本组件将数据流列值传输到SSIS变量.但是,在使用数据流脚本组件和SSIS变量时,必须遵循某些规则.

SSIS不允许您在处理行的脚本过程中为SSIS变量赋值.但是有执行前和执行后的过程,您可以在其中处理分配.

在脚本组件中,将SSIS变量添加到ReadWriteVariables属性.编辑脚本并在ScriptMain类中声明变量.使用PreExecute过程初始化变量.使用ProcessInputRow过程将输入-buffer列值分配给脚本变量.并且,使用PostExecute任务将脚本变量中的值分配给SSIS变量.

这是一个示例VB脚本组件.它有一个SSIS变量(MyOutVariable),它将获取脚本变量(MyVar)的输出.MyVar变量从数据流中的MyNumber列获取它的值.

Public Class ScriptMain
    Inherits UserComponent

    Dim MyVar As Integer

    Public Overrides Sub PreExecute()
        MyBase.PreExecute()

        'initialize variable local to data flow
        MyVar = 0

    End Sub

    Public Overrides Sub PostExecute()
        MyBase.PostExecute()

        ' output variable value to SSIS variable
        Me.Variables.MyOutVariable = MyVar

    End Sub

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

        ' logic to get value
        MyVar = Row.MyNumber

    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)