Transact-SQL (T-SQL): Fondamenti e Approfondimenti

[Lezione 8] - Sistemi di Gestione delle Transazioni

24/01/2024


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.


< lezione precedente      lezione successiva >