Condividi tramite


Vincoli di precedenza

I vincoli di precedenza collegano gli eseguibili, i contenitori e le attività inclusi nei pacchetti in modo da formare un flusso di controllo e specificano le condizioni che determinano se tali eseguibili devono essere eseguiti. Un eseguibile può essere costituito da un gestore di evento o da un contenitore Ciclo For, Ciclo Foreach o Sequenza. Anche nei gestori di eventi vengono utilizzati vincoli di precedenza per collegare gli eseguibili in modo da formare un flusso di controllo.

Un vincolo di precedenza collega due eseguibili: l'eseguibile con precedenza e l'eseguibile soggetto al vincolo. L'eseguibile con precedenza viene eseguito prima dell'eseguibile soggetto al vincolo e il risultato della sua esecuzione può determinare se l'eseguibile soggetto al vincolo verrà eseguito o meno. Nella figura seguente vengono illustrati due eseguibili collegati da vincoli di precedenza.

Eseguibili collegati con un vincolo di precedenza

L'architettura a contenitori nidificati di Integration Services consente a tutti i contenitori, ad eccezione del contenitore Host attività che incapsula una sola attività, di includere altri contenitori, ognuno con un proprio flusso di controllo. I contenitori Ciclo For, Ciclo Foreach e Sequenza possono includere più attività e altri contenitori, che a loro volta possono includere più attività e contenitori. Un pacchetto con un'attività Script e un contenitore Sequenza può ad esempio includere un vincolo di precedenza che collega l'attività Script e il contenitore Sequenza. Il contenitore Sequenza include tre attività Script e i relativi vincoli di precedenza collegano le tre attività Script in modo da formare un flusso di controllo. Nella figura seguente vengono illustrati i vincoli di precedenza utilizzati in un pacchetto con due livelli di nidificazione.

Vincoli di precedenza in un pacchetto

Poiché il pacchetto è al livello principale della gerarchia dei contenitori di SSIS, non è possibile collegare più pacchetti tramite vincoli di precedenza. È tuttavia possibile aggiungere un'attività Esegui pacchetto a un pacchetto e in tal modo collegare indirettamente un altro pacchetto al flusso di controllo.

Per configurare i vincoli di precedenza, procedere nel modo seguente:

  • Specificare un'operazione di valutazione. Il vincolo di precedenza utilizza un valore di vincolo, un'espressione o entrambi o per determinare se l'eseguibile deve essere eseguito o meno.

  • Se il vincolo di precedenza utilizza il risultato di un'esecuzione, sarà possibile specificare se l'esecuzione deve avere esito positivo, negativo o essere semplicemente completata.

  • Se il vincolo di precedenza utilizza il risultato di una valutazione, sarà possibile specificare un'espressione che restituisce un valore booleano.

  • Specificare se il vincolo di precedenza deve essere valutato singolarmente o insieme ad altri vincoli applicati all'eseguibile soggetto al vincolo.

Operazioni di valutazione

In Integration Services sono disponibili le operazioni di valutazione seguenti:

  • Un vincolo che utilizza solo il risultato dell'esecuzione dell'eseguibile con precedenza per determinare se l'eseguibile soggetto al vincolo deve essere eseguito o meno. Il risultato dell'esecuzione dell'eseguibile con precedenza indica se l'esecuzione ha avuto esito positivo, negativo o semplicemente che è stata completata.

  • Un'espressione che viene valutata per determinare se l'eseguibile soggetto al vincolo deve essere eseguito o meno. Se l'espressione restituisce True, l'eseguibile soggetto al vincolo verrà eseguito.

  • Un'espressione e un vincolo che combinano i requisiti del risultato dell'esecuzione dell'eseguibile con precedenza e del risultato restituito dalla valutazione dell'espressione.

  • Un'espressione o un vincolo che utilizzano il risultato dell'esecuzione dell'eseguibile con precedenza o il risultato restituito dalla valutazione dell'espressione.

L'espressione deve essere un'espressione SSIS valida e può includere funzioni, operatori e variabili personalizzate e di sistema. Per ulteriori informazioni, vedere Guida di riferimento alle espressioni in Integration Services e Variabili in Integration Services.

Risultati di esecuzione

I vincoli di precedenza possono utilizzare i risultati di esecuzione seguenti, singolarmente o in combinazione con un'espressione.

  • Il vincolo Completion richiede solo che l'eseguibile con precedenza abbia completato l'esecuzione, indipendentemente dall'esito, affinché l'eseguibile soggetto al vincolo venga eseguito.

  • Il vincolo Success richiede che l'eseguibile con precedenza abbia completato correttamente l'esecuzione, affinché l'eseguibile soggetto al vincolo venga eseguito.

  • Il vincolo Failure richiede che l'eseguibile con precedenza non abbia completato correttamente l'esecuzione, affinché l'eseguibile soggetto al vincolo venga eseguito.

[!NOTA]

È possibile raggruppare in una condizione con AND logico solo vincoli di precedenza appartenenti allo stesso insieme Precedence Constraint. Non è ad esempio possibile combinare i vincoli di precedenza utilizzati in due contenitori Ciclo Foreach diversi.

Configurazione del vincolo di precedenza

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.

Per ulteriori informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic sull'argomento seguente:

Per ulteriori informazioni sulle procedure per l'impostazione di queste proprietà in Progettazione SSIS, fare clic su uno degli argomenti seguenti:

Configurazione del vincolo di precedenza a livello di programmazione

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di programmazione, fare clic sull'argomento seguente:

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o Technet:

Per ricevere notifiche automatiche su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.