sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bruger du use if..else i Data Flow baseret på brugervariableværdier i SSIS

Du kan ikke deaktiver eller aktiver transformationer inden for Data Flow Task . Du kan dog aktivere eller deaktivere Dataflow-opgaver på Control Flow fanen.

Her er en mulig måde at gøre dette på fanen Kontrolflow:

Hvis det er muligt, skal du flytte kilden --> destinationstransformationer til individuelle dataflowopgaver. Noget som vist nedenfor.

Lad os antage, at du har oprettet variabler for hvert flow for at aktivere eller deaktivere Dataflow-opgaven baseret på en betingelse. For dette eksempel har jeg hårdkodet nogle værdier.

For dynamisk at aktivere eller deaktivere dataflowopgaver baseret på variabel. Klik på en dataflowopgave, og tryk på F4 for at se Properties . Klik på Ellipse på Egenskaber knappen ved siden af ​​Expressions ejendom. Du vil se Property Expression Editor.

Vælg Property Deaktiver og brug Ellipsis knappen for at indtaste udtrykket [email protected][User::Enable_BESTELLDRUCK] Læg mærke til udråbstegn, fordi variablen er erklæret til Aktiver men kun Disable ejendom er tilgængelig for du skal gøre det modsatte.

Gentag processen for andre dataflowopgaver med passende variabler. Kør pakken, og du vil bemærke, at den anden Data Flow Task ikke blev udført, fordi variablen Enable_AKT_FEHLER blev sat til værdien False .

Håber det hjælper.

Reference:

For at indlæse flere tabeller med det samme skema i ForEach Loop-beholderen, tag et kig på SO-svaret nedenfor. Det overfører data fra MS Access til SQL Server. Forhåbentlig burde det give dig en idé.

Hvordan får jeg programmæssigt listen over MS Access-tabeller i en SSIS-pakke?



  1. Bedste måde med relationstabeller

  2. Hvordan kan jeg få kolonnenavne fra en tabel i SQL Server?

  3. Forespørgsel for at søge i alle pakker efter tabel og/eller kolonne

  4. Fjern grænsesætningen fra MySQL Workbench