Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
SSIS Integration Runtime in Azure Data Factory
Il contenitore Ciclo For definisce un flusso di controllo iterativo in un pacchetto. L'implementazione del ciclo è simile alla struttura del ciclo For nei linguaggi di programmazione. A ogni ripetizione del ciclo il contenitore Ciclo For valuta un'espressione e ne ripete il flusso di lavoro finché tale espressione non restituisce False.
Per definire il ciclo, il contenitore Ciclo For usa gli elementi seguenti:
Un'espressione di inizializzazione facoltativa che assegna valori ai contatori del ciclo.
Un'espressione di valutazione che contiene l'espressione utilizzata per stabilire se il ciclo deve essere arrestato o continuare.
Un'espressione di iterazione facoltativa che incrementa o decrementa il contatore del ciclo.
Nella figura seguente viene illustrato un contenitore Ciclo For con un'attività Invia messaggi. Se l'espressione di inizializzazione è @Counter = 0, l'espressione di valutazione è @Counter < 4e l'espressione di iterazione è @Counter = @Counter + 1, il ciclo si ripeterà quattro volte e verranno inviati quattro messaggi di posta elettronica.
Le espressioni devono essere espressioni SQL Server Integration Services valide.
Per creare le espressioni di inizializzazione e assegnazione, è possibile utilizzare l'operatore di assegnazione (=). Questo operatore non è altrimenti supportato dalla grammatica delle espressioni di Integration Services e può essere utilizzato solo dai tipi di espressione di inizializzazione e di assegnazione nel contenitore Ciclo For. Tutte le espressioni che usano l'operatore di assegnazione devono avere la sintassi @Var = <expression>, dove Var è una variabile di runtime ed <expression> è un'espressione che segue le regole della sintassi delle espressioni di SSIS. L'espressione può includere le variabili, i valori letterali e tutti gli operatori e le funzioni supportati dalla grammatica delle espressioni di SSIS. L'espressione deve restituire un tipo di dati di cui è possibile eseguire il cast al tipo di dati della variabile.
Un contenitore For Loop può contenere una sola espressione di valutazione. Ciò significa che il contenitore For Loop esegue tutti gli elementi del flusso di controllo lo stesso numero di volte. Poiché un contenitore For Loop può includere altri contenitori For Loop, nei pacchetti è possibile creare cicli nidificati e implementare cicli complessi.
È possibile impostare una proprietà di transazione del contenitore Ciclo For per definire una transazione per un sottoinsieme del flusso di controllo del pacchetto. In questo modo è possibile gestire le transazioni con un livello di granularità superiore. Se ad esempio un contenitore Ciclo For ripete un flusso di controllo che aggiorna più volte i dati di una tabella, sarà possibile configurare il ciclo For e il relativo flusso di controllo per l'utilizzo di una transazione, in modo da assicurare che se non è possibile aggiornare correttamente tutti i dati, non ne verrà aggiornato alcuno. Per altre informazioni, vedere Transazioni di Integration Services.
Aggiungere un'iterazione a un flusso di controllo con il contenitore For Loop
Integration Services include il contenitore For Loop, un elemento del flusso di controllo che consente di includere facilmente un ciclo che ripete in modo condizionale un flusso di controllo in un pacchetto. Per altre informazioni, vedere Contenitore Ciclo For.
Il contenitore ciclo For valuta una condizione a ogni iterazione del ciclo e si interrompe quando la condizione risulta falsa. Il contenitore ciclo For comprende espressioni per inizializzare il ciclo, specificare la condizione di valutazione che arresta l'esecuzione del flusso di controllo ripetitivo e assegnare un valore a un'espressione che aggiorna il valore rispetto al quale viene confrontata la condizione di valutazione. Devi specificare una condizione di valutazione, ma le espressioni di inizializzazione e di assegnazione sono facoltative.
Il contenitore For Loop non fornisce alcuna funzionalità; fornisce solo la struttura in cui creare il flusso di controllo ripetitivo. Per rendere funzionale il contenitore For Loop, è necessario includere almeno un'attività al suo interno. Per altre informazioni, vedere Attività di Integration Services.
Il contenitore For Loop può includere un flusso di controllo con più attività e può includere anche altri contenitori. L'aggiunta di attività e contenitori a un contenitore Ciclo For è analoga all'aggiunta di tali elementi a un pacchetto, con la differenza che è necessario trascinare attività e contenitori nel contenitore Ciclo For anziché nel pacchetto. Se il contenitore Ciclo For contiene più di un'attività o contenitore, è possibile collegarli utilizzando vincoli di precedenza, come si fa in un pacchetto. Per altre informazioni, vedere Vincoli di precedenza.
Aggiungere un contenitore For Loop in un flusso di controllo
Aggiungere il contenitore del ciclo For al pacchetto. Per ulteriori informazioni, vedere Aggiungere o eliminare un'attività o un contenitore in un flusso di controllo.
Aggiungere attività e contenitori al contenitore For Loop. Per ulteriori informazioni, vedere Aggiungere o eliminare un'attività o un contenitore in un flusso di controllo.
Connettere le attività e i contenitori inclusi nel contenitore Ciclo For tramite vincoli di precedenza. Per altre informazioni, vedere Connessione di attività e contenitori tramite un vincolo di precedenza predefinito.
Configura il contenitore del ciclo for.
Configura il contenitore ciclo For
Questa procedura descrive come configurare un contenitore For Loop utilizzando la finestra di dialogo Editor For Loop.
In SQL Server Data Tools (SSDT), fare doppio clic sul contenitore For Loop per aprire la finestra Editor For Loop.
Facoltativamente, modificare il nome e la descrizione del contenitore For Loop.
Facoltativamente, digitare un'espressione di inizializzazione nella casella di testo InitExpression .
Digitare un'espressione di valutazione nella casella di testo EvalExpression .
Nota
L'espressione deve restituire un valore booleano. Quando l'espressione restituisce false, l'esecuzione del ciclo viene arrestata.
Facoltativamente, digitare un'espressione di assegnazione nella casella di testo AssignExpression .
Facoltativamente, fare clic su Espressioni e, nella pagina Espressioni, creare espressioni di proprietà per le proprietà del contenitore For Loop. Per altre informazioni, vedi Aggiungere o modificare un'espressione di proprietà.
Fare clic su OK per chiudere l'Editor del ciclo For.
Finestra di dialogo Editor ciclo For
La pagina Ciclo For della finestra di dialogo Editor ciclo For consente di configurare un ciclo che ripeta un flusso di lavoro fino a quando una determinata condizione non restituisca il valore False.
Per informazioni sul contenitore For Loop e su come utilizzarlo nei pacchetti, vedere For Loop Container.
Opzioni
InitExpression
Consente di specificare un'espressione facoltativa che inizializzi i valori utilizzati dal ciclo.
EvalExpression
Consente di specificare un'espressione che determini se il ciclo deve arrestarsi o continuare.
AssignExpression
Consente di specificare un'espressione facoltativa che modifichi una condizione ogni volta che il ciclo viene ripetuto.
Nome
Specificare un nome univoco per il contenitore For Loop. Tale nome viene utilizzato come etichetta nell'icona dell'attività.
Nota
I nomi degli oggetti devono essere univoci all'interno di un pacchetto.
Descrizione
Fornire una descrizione del contenitore For Loop.
Usa espressioni con il contenitore ciclo For
Quando si configura il contenitore Ciclo For specificando una condizione da valutare, un valore di inizializzazione o un valore di assegnazione, è possibile utilizzare valori letterali o espressioni.
Le espressioni possono includere variabili. Il vantaggio delle variabili è che possono essere aggiornate in fase di esecuzione, rendendo il pacchetto più flessibile e più facile da gestire. Un'espressione può avere una lunghezza massima di 4000 caratteri.
Quando si specifica una variabile in un'espressione è necessario anteporre il simbolo @ al nome della variabile. Se ad esempio il nome della variabile è Counter, nell'espressione usata nel contenitore Ciclo For sarà necessario immettere @Counter. Se si include la proprietà namespace nella variabile, è necessario racchiudere tra parentesi quadre la variabile e il namespace. Se ad esempio si usa la variabile Counter , nello spazio dei nomi MyNamespace sarà necessario immettere [@MyNamespace::Counter].
Le variabili utilizzate dal contenitore Ciclo For devono essere definite nell'ambito del contenitore Ciclo For o nell'ambito di qualsiasi contenitore di livello superiore nella gerarchia dei contenitori del pacchetto. Ad esempio, un contenitore For Loop può utilizzare sia variabili definite nel proprio ambito sia variabili definite nell'ambito del pacchetto. Per altre informazioni, vedere Variabili di Integration Services (SSIS) e Utilizzo di variabili nei pacchetti.
La grammatica delle espressioni SSIS offre un set completo di operatori e funzioni per l'implementazione di espressioni complesse che è possibile utilizzare per la valutazione, l'inizializzazione o l'assegnazione. Per altre informazioni, vedere Espressioni di Integration Services (SSIS).