BaşlayınÜcretsiz Başlayın

Hata varsa bir işlemi geri almak

İş yerindeki ilk gününde, bankanda para transferi yapıldığında bunun kaydını tutacak işlemleri (transaction) kurma görevi verildi.

account_id = 1 hesabından $100 çıkıp account_id = 5 hesabına gittiği basit bir betik (script) hazırlamak istiyorsun. Ardından bu hareketleri transactions tablosuna kaydedecek. Her şeyi doğru yazdığını düşünüyorsun ama tedbirli biri olarak önce her şeyi kontrol etmeyi tercih ediyorsun!

Aslında bir hata yaptın. 5 numaralı hesap için yeni bir işlem eklemek yerine, var olmayan 500 numaralı hesap için ekledin.

Gelecekteki hataları önlemek için, oluşturduğun betik bir hata oluşursa tüm değişiklikleri geri almalı (rollback). Her şey doğru giderse, işlem (transaction) onaylanmalı (commit).

Bu egzersiz

SQL Server'da İşlemler ve Hata Yönetimi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • İşlemi (transaction) başlat.
  • İşlemdeki hatayı düzelt.
  • Hata yoksa işlemi onayla (commit).
  • CATCH bloğunda işlemi geri al (rollback).

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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
Kodu Düzenle ve Çalıştır