Kom igångKom igång gratis

Återställa en transaktion vid fel

Din första arbetsdag och du har fått i uppgift att sätta upp transaktioner som registrerar penningöverföringar i banken.

Du vill skapa ett enkelt skript där 100 dollar överförs från account_id = 1 till account_id = 5. Därefter ska rörelserna registreras i tabellen transactions. Du tror att allt är korrekt skrivet, men som den noggranne person du är vill du dubbelkolla!

Det visar sig att du faktiskt gjort ett misstag. I stället för att infoga en ny transaktion för konto 5 gjorde du det för konto 500, som inte finns.

För att förhindra liknande fel i framtiden ska skriptet du skapar återställa alla ändringar om ett fel uppstår. Om allt går rätt ska transaktionen bekräftas.

Den här övningen är en del av kursen

Transaktioner och felhantering i SQL Server

Visa kurs

Övningsinstruktioner

  • Påbörja transaktionen.
  • Rätta till misstaget i operationen.
  • Bekräfta transaktionen om inga fel uppstår.
  • Inuti CATCH-blocket återställer du transaktionen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

BEGIN TRY  
	-- Begin the transaction
	BEGIN ___;
		UPDATE accounts SET current_balance = current_balance - 100 WHERE account_id = 1;
		INSERT INTO transactions VALUES (1, -100, GETDATE());
        
		UPDATE accounts SET current_balance = current_balance + 100 WHERE account_id = 5;
        -- Correct it
		INSERT INTO transactions VALUES (500, 100, GETDATE());
    -- Commit the transaction
	___ TRAN;    
END TRY
BEGIN CATCH  
	SELECT 'Rolling back the transaction';
    -- Rollback the transaction
	___ ___;
END CATCH
Redigera och kör kod