Dela via


For loop-kontainer

gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

For Loop-containern definierar ett upprepande kontrollflöde i ett paket. Loopimplementeringen liknar for-loopstrukturen i programmeringsspråk. I varje upprepning av loopen utvärderar For Loop-containern ett uttryck och upprepar arbetsflödet tills uttrycket utvärderas till False.

For Loop-containern använder följande element för att definiera loopen:

  • Ett valfritt initieringsuttryck som tilldelar värden till loopräknare.

  • Ett utvärderingsuttryck som innehåller det uttryck som används för att testa om loopen ska stoppas eller fortsätta.

  • Ett valfritt iterationsuttryck som ökar eller minskar loopräknaren.

Följande diagram visar en For Loop-container med en Skicka e-post-uppgift. Om initieringsuttrycket är @Counter = 0, är @Counter < 4utvärderingsuttrycket , och iterationsuttrycket är @Counter = @Counter + 1, upprepas loopen fyra gånger och skickar fyra e-postmeddelanden.

En For Loop-container upprepar en aktivitet fyra gånger

Uttrycken måste vara giltiga SQL Server Integration Services-uttryck.

Om du vill skapa initierings- och tilldelningsuttrycken kan du använda tilldelningsoperatorn (=). Den här operatorn stöds annars inte av Integration Services-uttryckets grammatik och kan endast användas av initierings- och tilldelningsuttryckstyperna i For Loop-containern. Alla uttryck som använder tilldelningsoperatorn måste ha syntaxen @Var = <expression>, där Var är en körningsvariabel och <uttrycket> är ett uttryck som följer reglerna för SSIS-uttryckssyntaxen. Uttrycket kan innehålla variabler, literaler och alla operatorer och funktioner som SSIS-uttryckets grammatik stöder. Uttrycket måste utvärderas till en datatyp som kan konverteras till variabelns datatyp.

En For Loop-container kan bara ha ett utvärderingsuttryck. Det innebär att For Loop-containern kör alla dess kontrollflödeselement samma antal gånger. Eftersom For Loop-containern kan innehålla andra For Loop-containrar kan du skapa kapslade loopar och implementera komplexa loopar i paket.

Du kan ange en transaktionsegenskap i For Loop-containern för att definiera en transaktion för en delmängd av paketkontrollflödet. På så sätt kan du hantera transaktioner på en mer detaljerad nivå. Om en For Loop-container till exempel upprepar ett kontrollflöde som uppdaterar data i en tabell flera gånger kan du konfigurera For Loop och dess kontrollflöde för att använda en transaktion för att säkerställa att inga data uppdateras om inte alla data har uppdaterats. Mer information finns i Integration Services-transaktioner.

Lägga till iteration i ett kontrollflöde med For Loop-containern

Integration Services innehåller For Loop-containern, ett kontrollflödeselement som gör det enkelt att inkludera loopning som villkorligt upprepar ett kontrollflöde i ett paket. Mer information finns i För Loop Container.

For Loop-containern utvärderar ett villkor för varje iteration av loopen och stoppas när villkoret utvärderas till false. Containern For Loop innehåller uttryck för att initiera loopen, ange utvärderingsvillkoret som stoppar körningen av det upprepade kontrollflödet och tilldela ett värde till ett uttryck som uppdaterar värdet som utvärderingsvillkoret jämförs med. Du måste ange ett utvärderingsvillkor, men initierings- och tilldelningsuttryck är valfria.

For Loop-containern innehåller inga funktioner. den innehåller bara den struktur där du skapar det repeterbara kontrollflödet. Om du vill tillhandahålla containerfunktioner måste du inkludera minst en uppgift i For Loop-containern. Mer information finns i Integration Services-uppgifter.

For Loop-containern kan innehålla ett kontrollflöde med flera uppgifter och kan innehålla andra containrar. Att lägga till uppgifter och containrar i en For Loop-container liknar att lägga till dem i ett paket, förutom att du drar aktiviteterna och containrarna till For Loop-containern i stället för till paketet. Om For Loop-containern innehåller mer än en uppgift eller container kan du ansluta dem med prioritetsbegränsningar precis som du gör i ett paket. Mer information finns i Prioritetsbegränsningar.

Lägga till en For Loop-container i ett kontrollflöde

  1. Lägg till For Loop-containern i paketet. Mer information finns i Lägga till eller ta bort en uppgift eller en container i ett kontrollflöde.

  2. Lägg till uppgifter och containrar i For Loop-containern. Mer information finns i Lägga till eller ta bort en uppgift eller en container i ett kontrollflöde.

  3. Anslut uppgifter och containrar i For Loop-containern med prioritetsbegränsningar. För mer information, se Ansluta uppgifter och containrar med hjälp av en standardföreträdesbegränsning.

  4. Konfigurera For Loop-containern.

Konfigurera For Loop-containern

Den här proceduren beskriver hur du konfigurerar en For Loop-container med hjälp av dialogrutan For Loop Editor .

  1. I SQL Server Data Tools (SSDT) dubbelklickar du på containern For Loop för att öppna For Loop Editor.

  2. Du kan också ändra namnet och beskrivningen av For Loop-containern.

  3. Du kan också skriva ett initieringsuttryck i textrutan InitExpression .

  4. Skriv ett utvärderingsuttryck i textrutan EvalExpression .

    Anmärkning

    Uttrycket måste utvärderas till ett booleskt värde. När uttrycket utvärderas till false slutar loopen att köras.

  5. Du kan också ange ett tilldelningsuttryck i textrutan AssignExpression .

  6. Du kan också klicka på Uttryck och på sidan Uttryck skapa egenskapsuttryck för egenskaperna för For Loop-containern. Mer information finns i Lägg till eller ändra ett egenskapsuttryck.

  7. Stäng For Loop Editor genom att klicka på OK.

Dialogrutan för loopredigerare

Använd sidan For Loop i dialogrutan For Loop Editor för att konfigurera en loop som upprepar ett arbetsflöde tills ett angivet villkor utvärderas till false.

Mer information om For Loop-containern och hur du använder den i paket finns i For Loop Container(For Loop Container).

Alternativ

InitExpression
Du kan också ange ett uttryck som initierar värden som används av loopen.

EvalExpression
Ange ett uttryck för att utvärdera om loopen ska stoppas eller fortsätta.

AssignExpression
Du kan också ange ett uttryck som ändrar ett villkor varje gång loopen upprepas.

Namn
Ange ett unikt namn för For Loop-containern. Det här namnet används som etikett i aktivitetsikonen.

Anmärkning

Objektnamn måste vara unika i ett paket.

Beskrivning
Ange en beskrivning av For Loop-containern.

Använda uttryck med For Loop-containern

När du konfigurerar For Loop-containern genom att ange ett utvärderingsvillkor, initieringsvärde eller tilldelningsvärde kan du använda antingen literaler eller uttryck.

Uttrycken kan innehålla variabler. Fördelen med att använda variabler är att de kan uppdateras vid körning, vilket gör paketen mer flexibla och enklare att hantera. Den maximala längden på ett uttryck är 4 000 tecken.

När du anger en variabel i ett uttryck måste du förorda variabelnamnet med at-tecknet (@). För en variabel med namnet Counter anger du @Counter till exempel i det uttryck som For Loop-containern använder. Om du inkluderar egenskapen namespace i variabeln måste du omsluta variabeln och namnområdet inom hakparenteser. För en räknarvariabel i namnområdet MyNamespace skriver du till exempel [@MyNamespace::Counter].

Variablerna som används av For Loop-containern måste definieras i omfånget för For Loop-containern eller i omfånget för en container som är högre i paketcontainerhierarkin. Till exempel kan en For Loop-container använda variabler som definierats i dess omfång och även variabler som definierats i paketomfånget. Mer information finns i SSIS-variabler (Integration Services) och Använda variabler i paket.

Grammatik för SSIS-uttryck innehåller en fullständig uppsättning operatorer och funktioner för att implementera komplexa uttryck som används för utvärdering, initiering eller tilldelning. Mer information finns i Uttryck för Integration Services (SSIS).

Se även

Kontrollflöde
Expressioner för Integration Services (SSIS)