SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

Conjunto de resultados do conjunto SSIS do fluxo de dados para a variável


Você pode usar um componente Data Flow Script para transferir um valor de coluna de fluxo de dados para uma variável SSIS. No entanto, você deve seguir determinadas regras ao trabalhar com o componente Data Flow Script e as variáveis ​​SSIS.

O SSIS não permite atribuir valores a variáveis ​​do SSIS no procedimento de script que processa linhas. Mas existem procedimentos de pré e pós-execução nos quais você pode lidar com a atribuição.

Em seu componente Script, adicione a variável SSIS à propriedade ReadWriteVariables. Edite o script e declare uma variável na classe ScriptMain. Use o procedimento PreExecute para inicializar a variável. Use o procedimento ProcessInputRow para designar o valor da coluna -buffer de entrada para a variável de script. E use a tarefa PostExecute para atribuir o valor da variável de script à variável SSIS.

Aqui está um exemplo de componente de script VB. Possui uma variável SSIS (MyOutVariable) que obterá a saída da variável de script (MyVar). A variável MyVar obtém seu valor da coluna MyNumber no fluxo de dados.
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