SSMS
 sql >> Datenbank >  >> Database Tools >> SSMS

SSIS-Set-Ergebnissatz vom Datenfluss in die Variable

Sie können eine Datenflussskriptkomponente verwenden, um einen Datenflussspaltenwert an eine SSIS-Variable zu übertragen. Sie müssen jedoch bestimmte Regeln befolgen, wenn Sie mit der Datenflussskriptkomponente und SSIS-Variablen arbeiten.

SSIS erlaubt es Ihnen nicht, SSIS-Variablen in der Skriptprozedur, die Zeilen verarbeitet, Werte zuzuweisen. Aber es gibt Pre- und Post-Execute-Prozeduren, in denen Sie die Zuweisung vornehmen können.

Fügen Sie in Ihrer Skriptkomponente die SSIS-Variable zur ReadWriteVariables-Eigenschaft hinzu. Bearbeiten Sie das Skript und deklarieren Sie eine Variable in der ScriptMain-Klasse. Verwenden Sie die PreExecute-Prozedur, um die Variable zu initialisieren. Verwenden Sie die ProcessInputRow-Prozedur, um der Skriptvariablen den Spaltenwert input -buffer zuzuweisen. Verwenden Sie außerdem die PostExecute-Aufgabe, um den Wert aus der Skriptvariablen der SSIS-Variablen zuzuweisen.

Hier ist ein Beispiel für eine VB-Skriptkomponente. Es hat eine SSIS-Variable (MyOutVariable), die die Ausgabe der Skriptvariablen (MyVar) erhält. Die MyVar-Variable erhält ihren Wert aus der MyNumber-Spalte im Datenfluss.

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