Delen via


Voor luscontainer

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

De For Loop-container definieert een herhalende controlestroom in een pakket. De lus-implementatie is vergelijkbaar met de For-lusstructuur in programmeertalen. In elke herhaling van de lus evalueert de For Loop-container een expressie en herhaalt de werkstroom totdat de expressie onwaar is.

De For Loop-container gebruikt de volgende elementen om de lus te definiëren:

  • Een optionele initialisatie-uitdrukking die waarden toewijst aan de lusvariabelen.

  • Een evaluatie-expressie die de expressie bevat die wordt gebruikt om te testen of de lus moet stoppen of doorgaan.

  • Een optionele iteratie-expressie waarmee de teller van de lus wordt verhoogd of verlaagd.

In het volgende diagram ziet u een For Loop-container met een taak E-mail verzenden. Als de initialisatie-expressie is @Counter = 0, de evaluatie-expressie is @Counter < 4en de iteratie-expressie is @Counter = @Counter + 1, wordt de lus vier keer herhaald en worden vier e-mailberichten verzonden.

Een For Loop-container herhaalt een taak vier keer

De expressies moeten geldige SQL Server Integration Services-expressies zijn.

Als u de initialisatie- en toewijzingsexpressies wilt maken, kunt u de toewijzingsoperator (=) gebruiken. Deze operator wordt anders niet ondersteund door de grammatica van de Integration Services-expressie en kan alleen worden gebruikt door de initialisatie- en toewijzingsexpressietypen in de For Loop-container. Elke expressie die gebruikmaakt van de toewijzingsoperator moet de syntaxis @Var = <expression>hebben, waarbij Var een runtimevariabele is en <expressie een expressie> is die de regels van de syntaxis van de SSIS-expressie volgt. De expressie kan de variabelen, letterlijke elementen en eventuele operatoren en functies bevatten die door de grammatica van de SSIS-expressie worden ondersteund. De expressie moet naar een gegevenstype geëvalueerd zijn dat kan worden omgezet in het gegevenstype van de variabele.

Een For Loop-container kan slechts één evaluatie-expressie hebben. Dit betekent dat de For Loop-container alle besturingsstroomelementen hetzelfde aantal keren uitvoert. Omdat de For Loop-container andere For Loop-containers kan bevatten, kunt u geneste lussen bouwen en complexe lussen implementeren in pakketten.

U kunt een transactie-eigenschap instellen in de For Loop-container om een transactie te definiëren voor een subset van de pakketbeheerstroom. Op deze manier kunt u transacties op een gedetailleerder niveau beheren. Als een For Loop-container bijvoorbeeld een controlestroom herhaalt die gegevens in een tabel meerdere keren bijwerkt, kunt u de for-lus en de bijbehorende controlestroom zo configureren dat er een transactie wordt gebruikt om ervoor te zorgen dat als niet alle gegevens correct worden bijgewerkt, er geen gegevens worden bijgewerkt. Zie Integration Services Transactionsvoor meer informatie.

Iteratie toevoegen aan een controlestroom met de For Loop-container

Integration Services bevat de For Loop-container, een besturingselement voor stroom waarmee u eenvoudig een lus kunt opnemen die voorwaardelijk een besturingsstroom herhaalt in een pakket. Zie For Loop Containervoor meer informatie.

De For Loop-container evalueert een voorwaarde op elke iteratie van de lus en stopt wanneer de voorwaarde onwaar is. De For Loop-container bevat expressies voor het initialiseren van de lus, het opgeven van de evaluatievoorwaarde die de uitvoering van de herhalende controlestroom stopt en een waarde toewijst aan een expressie waarmee de waarde wordt bijgewerkt waarmee de evaluatievoorwaarde wordt vergeleken. U moet een evaluatievoorwaarde opgeven, maar initialisatie- en toewijzingsexpressies zijn optioneel.

De For Loop-container biedt geen functionaliteit; het biedt alleen de structuur waarin u de herhaalbare controlestroom bouwt. Als u containerfunctionaliteit wilt bieden, moet u ten minste één taak opnemen in de For Loop-container. Zie Integration Services Tasksvoor meer informatie.

De For Loop-container kan een controlestroom met meerdere taken bevatten en kan andere containers bevatten. Het toevoegen van taken en containers aan een For Loop-container is vergelijkbaar met het toevoegen ervan aan een pakket, behalve dat u de taken en containers naar de For Loop-container sleept in plaats van naar het pakket. Als de For Loop-container meer dan één taak of container bevat, kunt u deze verbinden met behulp van prioriteitsbeperkingen, net zoals in een pakket. Zie prioriteitsbeperkingenvoor meer informatie.

Een For Loop-container toevoegen in een besturingsstroom

  1. Voeg de For Loop-container toe aan het pakket. Zie Een taak of een container toevoegen of verwijderen in een besturingsstroom voor meer informatie.

  2. Voeg taken en containers toe aan de For Loop-container. Zie Een taak of een container toevoegen of verwijderen in een besturingsstroom voor meer informatie.

  3. Verbind taken en containers in de For Loop-container met behulp van prioriteitsbeperkingen. Zie Taken en containers verbinden met behulp van een standaardprioriteitsbeperking voor meer informatie.

  4. Configureer de For Loop-container.

De For Loop-container configureren

In deze procedure wordt beschreven hoe u een For Loop-container configureert met behulp van het dialoogvenster For Loop Editor .

  1. Dubbelklik in SQL Server Data Tools (SSDT) op de For Loop-container om de For Loop-editor te openen.

  2. Wijzig desgewenst de naam en beschrijving van de For Loop-container.

  3. Typ desgewenst een initialisatie-expressie in het tekstvak InitExpression .

  4. Typ een evaluatie-expressie in het tekstvak EvalExpression .

    Opmerking

    De expressie moet een Booleaanse waarde evalueren. Wanneer de expressie onwaar is, stopt de lus met draaien.

  5. Typ desgewenst een toewijzingsexpressie in het tekstvak AssignExpression .

  6. Klik eventueel op Expressies en maak op de pagina Expressies eigenschapsexpressies voor de eigenschappen van de For Loop-container. Zie Een eigenschapsexpressie toevoegen of wijzigen voor meer informatie.

  7. Klik op OK om de For Loop Editor te sluiten.

Het dialoogvenster Luseditor

Gebruik de pagina For Loop van het dialoogvenster For Loop Editor om een lus te configureren die een werkstroom herhaalt totdat een opgegeven voorwaarde onwaar wordt geëvalueerd.

Zie For Loop Container voor meer informatie over de For Loop-container en hoe u deze kunt gebruiken in pakketten.

Opties

InitExpression
Geef desgewenst een expressie op waarmee waarden worden geïnitialiseerd die door de lus worden gebruikt.

EvalExpression
Geef een expressie op om te evalueren of de lus moet stoppen of doorgaan.

AssignExpression
Geef desgewenst een expressie op waarmee elke keer dat de lus wordt herhaald een voorwaarde wijzigt.

Naam
Geef een unieke naam op voor de For Loop-container. Deze naam wordt gebruikt als het label in het taakpictogram.

Opmerking

Objectnamen moeten uniek zijn binnen een pakket.

Beschrijving
Geef een beschrijving op van de For Loop-container.

Expressies gebruiken met de For Loop-container

Wanneer u de For Loop-container configureert door een evaluatievoorwaarde, initialisatiewaarde of toewijzingswaarde op te geven, kunt u letterlijke waarden of expressies gebruiken.

De expressies kunnen variabelen bevatten. Het voordeel van het gebruik van variabelen is dat ze tijdens runtime kunnen worden bijgewerkt, waardoor de pakketten flexibeler en eenvoudiger te beheren zijn. De maximale lengte van een expressie is 4000 tekens.

Wanneer u een variabele in een expressie opgeeft, moet u de naam van de variabele vooraf laten gaan door het at-teken (@). Voer bijvoorbeeld voor een variabele met de naam Teller@Counter de expressie in die door de For Loop-container wordt gebruikt. Als u de eigenschap naamruimte op de variabele opneemt, moet u de variabele en naamruimte tussen vierkante haken insluiten. Voor een tellervariabele in de naamruimte MyNamespace typt u bijvoorbeeld [@MyNamespace::Counter].

De variabelen die door de For Loop-container worden gebruikt, moeten worden gedefinieerd in het bereik van de For Loop-container of in het bereik van een container die hoger is in de containerhiërarchie van het pakket. Een For Loop-container kan bijvoorbeeld variabelen gebruiken die zijn gedefinieerd in het bereik en ook variabelen die zijn gedefinieerd in pakketbereik. Zie SSIS-variabelen (Integration Services) en Variabelen gebruiken in pakketten voor meer informatie.

De grammatica van de SSIS-expressie biedt een volledige set operators en functies voor het implementeren van complexe expressies die worden gebruikt voor evaluatie, initialisatie of toewijzing. Voor meer informatie, zie Integration Services (SSIS) Expressies.

Zie ook

controlestroom
SSIS-expressies (Integration Services)