sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder use if..else i Data Flow baserat på användarvariabelvärden i SSIS

Du kan inte inaktivera eller aktivera transformationer inom Data Flow Task . Du kan dock aktivera eller inaktivera dataflödesuppgifter i Control Flow flik.

Här är ett möjligt sätt att göra detta på fliken Kontrollflöde:

Om det är möjligt, flytta källan --> destinationstransformationer till individuella dataflödesuppgifter. Något som visas nedan.

Låt oss anta att du har skapat variabler för varje flöde för att aktivera eller inaktivera dataflödesuppgiften baserat på något villkor. För det här exemplet har jag hårdkodat några värden.

För att dynamiskt aktivera eller inaktivera dataflödesuppgifter baserat på variabel. Klicka på en dataflödesuppgift och tryck på F4 för att visa Properties . Klicka på Ellips på Egenskaper knappen bredvid Expressions fast egendom. Du kommer att se egenskapsuttrycksredigeraren.

Välj Property Inaktivera och använd Ellipsis knappen för att ange uttrycket [email protected][User::Enable_BESTELLDRUCK] Lägg märke till utropstecknet eftersom variabeln deklareras till Aktivera men bara Disable egendom är tillgänglig för att du måste göra motsatsen.

Upprepa processen för andra dataflödesuppgifter med lämpliga variabler. Kör paketet och du kommer att märka att den andra dataflödesuppgiften inte kördes eftersom variabeln Enable_AKT_FEHLER sattes till värdet False .

Hoppas det hjälper.

Referens:

För att ladda flera tabeller med samma schema i ForEach Loop-behållaren, ta en titt på SO-svaret nedan. Den överför data från MS Access till SQL Server. Förhoppningsvis borde det ge dig en idé.

Hur får jag programmässigt listan över MS Access-tabeller i ett SSIS-paket?



  1. Hur frågar man kapslade arrayer i en postgres json-kolumn?

  2. Använd MySQL Relational Databases på CentOS 5

  3. Infoga en lista<> i SQL Server-tabellen

  4. Bästa sättet att lagra XML-data i en MySQL-databas, med vissa specifika krav