In questa lezione affronteremo i seguenti argomenti:
• Concetto di transazioni e atomicità
• Utilizzo di BEGIN TRANSACTION, COMMIT e ROLLBACK
• Transazioni annidate e livelli di isolamento
• Gestione di più operazioni atomiche
Concetto di transazioni e atomicità:
Una transazione in Transact-SQL rappresenta un insieme di operazioni eseguite come un'unica unità atomica.
L'atomicità garantisce che tutte le operazioni all'interno di una transazione vengano eseguite con successo o annullate in caso di errore.
Esempio:
BEGIN TRANSACTION;
-- Operazioni all'interno della transazione
COMMIT; -- o ROLLBACK in caso di errore
In questo esempio, BEGIN TRANSACTION avvia una transazione, e COMMIT conferma le operazioni o ROLLBACK annulla le operazioni in caso di errore.
Utilizzo di BEGIN TRANSACTION, COMMIT e ROLLBACK:
BEGIN TRANSACTION;
-- Operazioni della transazione
COMMIT; -- conferma le operazioni
-- oppure ROLLBACK; -- annulla le operazioni
BEGIN TRANSACTION avvia una transazione, COMMIT conferma le operazioni e ROLLBACK annulla le operazioni, ripristinando lo stato precedente.
Transazioni annidate e livelli di isolamento:
BEGIN TRANSACTION; -- Transazione esterna
BEGIN TRANSACTION; -- Transazione interna
-- Operazioni COMMIT; -- Conferma la transazione interna
-- Altre operazioni della transazione esterna
COMMIT; -- Conferma la transazione esterna
Le transazioni possono essere annidate, ma è importante gestire attentamente i livelli di isolamento per evitare problemi di concorrenza.
Gestione di più operazioni atomiche:
BEGIN TRANSACTION; -- Operazioni atomiche 1
SAVE TRANSACTION Savepoint1; -- Salvataggio di uno stato intermedio
-- Operazioni atomiche 2
ROLLBACK TO Savepoint1; -- Annulla solo le operazioni dalla savepoint
-- Operazioni atomiche 3
COMMIT; -- Conferma le operazioni rimanenti
SAVE TRANSACTION consente di creare uno stato intermedio (savepoint) all'interno di una transazione, e ROLLBACK TO può essere utilizzato per tornare a uno specifico savepoint, annullando solo le operazioni successive.
In questa lezione, abbiamo esplorato i concetti di transazioni, atomicità e come utilizzare BEGIN TRANSACTION, COMMIT e ROLLBACK per garantire l'integrità dei dati. Nelle prossime lezioni, esamineremo in dettaglio la sicurezza in Transact-SQL.