sql-server-2008 – SSIS将结果集从数据流设置为变量

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – SSIS将结果集从数据流设置为变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
之前我给自己一些压力相关的心脏病发作.

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

我创建了变量ok.

结果集来自具有多个元素的XML文件.标志(0或1)是这些元素之一的结果,所以我还需要知道如何使结果集只是该标志.

如果有人能帮助我真的很感激.

更新:我最终将结果(0,1)读回到sql Server到一个标志表中.然后使用执行sql脚本从sql Server和变量读取它.不知道这是否是最好的方法,但似乎已经完成了.

解决方法

您可以使用数据流脚本组件将数据流列值传输到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

猜你在找的MsSQL相关文章