Transazioni di Integration Services
Nei pacchetti vengono utilizzate transazioni per l'associazione di azioni del database eseguite dalle attività in unità atomiche in modo da mantenere l'integrità dei dati. Tutti i tipi di contenitori di Integration Services, ovvero pacchetti, ciclo For, ciclo Foreach, contenitori Sequenza, nonché gli host di attività in cui è incapsulata ogni attività, possono essere configurati per l'uso delle transazioni. Integration Services offre tre opzioni per la configurazione delle transazioni: NotSupported, Supported e Required.
L'opzioneRequired indica che il contenitore avvia una transazione, a meno che il contenitore padre non abbia già avviato un'altra transazione. In questo caso, il contenitore parteciperà alla transazione in corso. Si supponga, ad esempio, che un pacchetto includa un contenitore Sequenza con l'opzione Required . Se il pacchetto non è stato configurato per il supporto di transazioni, il contenitore avvierà la propria transazione. Se per il pacchetto è stata impostata l'opzione Required , il contenitore Sequenza parteciperà alla transazione del pacchetto.
L'opzioneSupported indica che il contenitore non avvia una transazione, ma partecipa alla transazione avviata dal contenitore padre. Si supponga, ad esempio, che un pacchetto includa quattro attività Esegui SQL con l'opzione Supported e che il pacchetto avvii una transazione. In questo caso, se una delle attività Esegui SQL ha esito negativo viene eseguito il rollback degli aggiornamenti del database eseguiti dalle attività. Nel caso di un pacchetto che non avvia una transazione, le quattro attività Esegui SQL risultano non associate ad alcuna transazione. Di conseguenza viene eseguito il rollback solo degli aggiornamenti del database eseguiti dall'attività che ha esito negativo.
L'opzioneNotSupported indica che il contenitore non avvia una transazione e non partecipa ad una transazione in corso. Una transazione avviata da un contenitore padre non ha alcun effetto sui contenitori figlio non configurati per il supporto di transazioni. Si supponga, ad esempio, che un pacchetto sia configurato per l'avvio di una transazione e che per un contenitore Ciclo For del pacchetto sia impostata l'opzione NotSupported . In questo caso, se le attività del Ciclo For hanno esito negativo non è possibile eseguire il rollback di nessuna attività.
Per configurare le transazioni, è necessario impostare la proprietà TransactionOption del contenitore. È possibile impostare questa proprietà nella finestra Proprietà di SQL Server Data Tools (SSDT) o a livello di codice.
Nota
La proprietà TransactionOption
può determinare se il valore della proprietà IsolationLevel
richiesta da un contenitore viene applicato o meno. Per altre informazioni, vedere la descrizione della IsolationLevel
proprietà nell'argomento Impostazione delle proprietà del pacchetto.
Per configurare un pacchetto per l'utilizzo di transazioni
Risorse esterne
- Intervento nel blog How to Use Transactions in SQL Server Integration Services SSIS all'indirizzo www.mssqltips.com