|
Un tipico esempio di gestione commit-rollback può essere la seguente:
BEGIN TRANSACTION (inizio della transazione)
USE banca1 (utilizza il database di nome BANCA1)
UPDATE conticorrenti // aggiorna la tabella dei conti correnti
SET saldo = saldo + 1000000 //aggiungendo un milione al saldo
WHERE ccn = 181818 // del conto corrente numero 181818
ON ERROR ROLLBACK // in caso di un qualunque errore effettua un rollback ed annulla tutto
USE banca2 // utilizza il database di nome BANCA2
UPDATE conticorrenti // aggiorna la tabella dei conti correnti
SET saldo = saldo - 1000000 // sottraendo un milione al saldo
WHERE ccn = 161616 // del conto corrente numero 161616
ON ERROR ROLLBACK // in caso di un qualunque errore effettua un rollback ed annulla tutto
COMMIT // effettua tutta la transizione in una volta
Attenzione, l' esempio fatto sopra e' un classico esempio di più ISTRUZIONI inserite in un' unica transazione , ma in genere se non specifichiamo nulla ogni singola istruzione viene gestita come una transazione a se stante, pertanto se durante l' esecuzione della nostra update su due milioni di campi crolla il sistema, le procedure di ripristino provvederanno a fare si che NESSUNA modifica della due milioni che stavamo facendo compaia, il che e' incredibilmente preferibile al non sapere su quali record la modifica e' già stata apportata e su quali no
di
|