sql >> Databáze >  >> RDS >> Sqlserver

Jak používat použití if..else v toku dat na základě hodnot uživatelských proměnných v SSIS

Nemůžete zakázat nebo povolit transformace v rámci Data Flow Task . Úlohy toku dat však můžete povolit nebo zakázat v Control Flow kartu.

Zde je jeden z možných způsobů, jak toho dosáhnout na kartě Control Flow:

Pokud je to možné, přesuňte transformace zdroje --> cíle do jednotlivých úloh toku dat. Něco jako je uvedeno níže.

Předpokládejme, že jste vytvořili proměnné pro každý tok pro povolení nebo zakázání úlohy toku dat na základě nějaké podmínky. Pro tento příklad jsem pevně zakódoval některé hodnoty.

Chcete-li dynamicky povolit nebo zakázat úlohy toku dat založené na proměnné. Klikněte na úlohu toku dat a stiskněte F4 pro zobrazení Properties . Na stránce Vlastnosti klikněte na elipsy vedle Expressions vlastnictví. Uvidíte Editor výrazů vlastností.

Vyberte Property Deaktivujte a použijte Elipsy tlačítko pro zadání výrazu [email protected][User::Enable_BESTELLDRUCK] Všimněte si vykřičníku, protože proměnná je deklarována jako Povolit ale pouze Disable je vám k dispozici, musíte udělat opak.

Opakujte proces pro další úlohy toku dat s vhodnými proměnnými. Spusťte balíček a všimnete si, že druhá úloha toku dat nebyla provedena, protože proměnná Enable_AKT_FEHLER byla nastavena na hodnotu False .

Doufám, že to pomůže.

Odkaz:

Chcete-li načíst více tabulek se stejným schématem v kontejneru ForEach Loop, podívejte se na níže uvedenou odpověď SO. Přenáší data z MS Access na SQL Server. Doufejme, že by vám to mělo dát představu.

Jak programově získám seznam tabulek MS Access v rámci balíčku SSIS?



  1. DATEDIFF – Nahraďte NULL za NOW()

  2. Jak zlepšit výkon dílčího dotazu?

  3. MySql :Vyberte příkaz pomocí operátoru IN

  4. MySQL Event If Příkaz END IF Error