sql >> Database >  >> RDS >> Sqlserver

Gebruik if..else in Data Flow op basis van waarden van gebruikersvariabelen in SSIS

Je kan niet schakel transformaties in of uit binnen de Data Flow Task . U kunt echter gegevensstroomtaken in- of uitschakelen op de Control Flow tabblad.

Hier is een mogelijke manier om dit te doen op het tabblad Control Flow:

Verplaats indien mogelijk de bron --> doeltransformaties naar afzonderlijke gegevensstroomtaken. Zoiets als hieronder weergegeven.

Laten we aannemen dat u variabelen hebt gemaakt voor elke stroom om de gegevensstroomtaak in of uit te schakelen op basis van een bepaalde voorwaarde. Voor dit voorbeeld heb ik enkele waarden hard gecodeerd.

Gegevensstroomtaken dynamisch in- of uitschakelen op basis van variabele. Klik op een gegevensstroomtaak en druk op F4 om Properties te bekijken . Klik in de Eigenschappen op de Ellipsis knop naast de Expressions eigendom. U ziet de editor voor eigenschapsuitdrukkingen.

Selecteer de Property Schakel de Ellipsis . uit en gebruik deze knop om de uitdrukking [email protected][User::Enable_BESTELLDRUCK] Let op het uitroepteken omdat de variabele is gedeclareerd tot Inschakelen maar alleen Disable eigendom beschikbaar is, moet u het tegenovergestelde doen.

Herhaal het proces voor andere gegevensstroomtaken met de juiste variabelen. Voer het pakket uit en u zult merken dat de tweede Data Flow Task niet is uitgevoerd omdat de variabele Enable_AKT_FEHLER was ingesteld op de waarde False .

Ik hoop dat dat helpt.

Referentie:

Bekijk het onderstaande SO-antwoord om meerdere tabellen met hetzelfde schema in de ForEach Loop-container te laden. Het brengt gegevens over van MS Access naar SQL Server. Hopelijk geeft dat je een idee.

Hoe krijg ik programmatisch de lijst met MS Access-tabellen binnen een SSIS-pakket?



  1. SELECTEER $ (dollarteken)

  2. PHP-echo die het woord 'Array' retourneert

  3. Externe sleutel toevoegen aan een railsmodel

  4. Is het mogelijk om een ​​gegevenstype Converter te schrijven om postgres JSON-kolommen te verwerken?