Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como usar use if..else no fluxo de dados com base nos valores das variáveis ​​do usuário no SSIS


Você não pode desabilitar ou habilitar transformações na Data Flow Task . No entanto, você pode ativar ou desativar as tarefas de fluxo de dados no Control Flow aba.

Aqui está uma maneira possível de fazer isso na guia Control Flow:

Se for possível, mova as transformações de origem --> destino para tarefas de fluxo de dados individuais. Algo como mostrado abaixo.



Vamos supor que você criou variáveis ​​para cada fluxo para habilitar ou desabilitar a Tarefa de Fluxo de Dados com base em alguma condição. Para este exemplo, eu codifiquei alguns valores.



Para habilitar ou desabilitar dinamicamente as tarefas de fluxo de dados com base na variável. Clique em uma tarefa de fluxo de dados e pressione F4 para ver Properties . Nas Propriedades, clique nas Reticências botão ao lado de Expressions propriedade. Você verá o Editor de expressão de propriedade.

Selecione a Property Desative e use as Reticências botão para inserir a expressão [email protected][User::Enable_BESTELLDRUCK] Observe o sinal de exclamação porque a variável está declarada como Ativar mas apenas Disable propriedade está disponível para você precisa fazer o oposto.



Repita o processo para outras tarefas de fluxo de dados com as variáveis ​​apropriadas. Execute o pacote e você notará que a segunda tarefa de fluxo de dados não foi executada porque a variável Enable_AKT_FEHLER foi definido para o valor False .

Espero que ajude.


Referência:


Para carregar várias tabelas com o mesmo esquema no contêiner ForEach Loop, dê uma olhada na resposta SO abaixo. Ele transfere dados do MS Access para o SQL Server. Espero que isso lhe dê uma ideia.

Como obtenho programaticamente a lista de tabelas do MS Access em um pacote SSIS?