IniziaInizia gratis

Scegliere quando eseguire COMMIT o ROLLBACK di una transazione

La banca in cui lavori ha deciso di dare 100 \( ai conti con meno di 5.000 \). Tuttavia, il direttore vuole erogare quel denaro solo se non ci sono più di 200 conti con meno di 5.000 $.

Prepari uno script per accreditare quei 100 \( e, tra i vari modi possibili, decidi di aprire una transazione e poi aggiornare ogni conto con un saldo inferiore a 5.000 \). Dopo, controlli il numero di righe interessate dall’UPDATE usando la funzione @@ROWCOUNT. Se questo numero è maggiore di 200, esegui il rollback della transazione. Altrimenti, esegui il commit.

Come imposteresti lo script?

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in SQL Server

Visualizza il corso

Istruzioni dell'esercizio

  • Avvia la transazione.
  • Verifica se il numero di righe interessate è maggiore di 200.
  • Esegui il rollback della transazione se il numero di righe interessate è superiore a 200.
  • Esegui il commit della transazione se il numero di righe interessate è minore o uguale a 200.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance + 100
		WHERE current_balance < 5000;
	-- Check number of affected rows
	IF @@ROWCOUNT > ___ 
		BEGIN 
        	-- Rollback the transaction
			___ ___; 
			SELECT 'More accounts than expected. Rolling back'; 
		END
	ELSE
		BEGIN 
        	-- Commit the transaction
			___ ___; 
			SELECT 'Updates commited'; 
		END
Modifica ed esegui il codice