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

TRY...CATCH yapısında @@TRANCOUNT kontrolü

Hesap 10’un sahibi çekiliş kazandı ve 200$ ödül alacak. Bu 200$’ı hesap 10’un current_balance değerine eklemek için basit bir betik hazırlıyorsun. Her şeyi doğru yazdığına inanıyorsun ama kodunu kontrol etmeyi tercih ediyorsun.

Aslında parayı eklerken küçük bir hata yaptın: SET current_balance = 'current_balance' + 200. 'current_balance' ifadesini string olarak yazdın ve bu bir hataya yol açıyor.

Oluşturacağın betik, bir hata meydana gelirse açık bir işlem olup olmadığını kontrol ederek tüm değişiklikleri rollback etmelidir. Her şey doğru giderse, yine açık bir işlem olup olmadığını kontrol ederek işlemi commit etmelidir.

Bu egzersiz

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

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

Egzersiz talimatları

  • İşlemi başlat.
  • İşlemdeki hatayı düzelt.
  • TRY bloğunun içinde, açık bir işlem olup olmadığını kontrol et ve commit et.
  • CATCH bloğunun içinde, açık bir işlem olup olmadığını kontrol et ve rollback yap.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

BEGIN TRY
	-- Begin the transaction
	___ ___;
    	-- Correct the mistake
		UPDATE accounts SET current_balance = 'current_balance' + 200
			WHERE account_id = 10;
    	-- Check if there is a transaction
		IF ___ > 0     
    		-- Commit the transaction
			___ ___;
     
	SELECT * FROM accounts
    	WHERE account_id = 10;      
END TRY
BEGIN CATCH  
    SELECT 'Rolling back the transaction'; 
    -- Check if there is a transaction
    IF ___ > 0   	
    	-- Rollback the transaction
        ___ ___;
END CATCH
Kodu Düzenle ve Çalıştır