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

Bir işlemi ne zaman commit ya da rollback yapacağını seçmek

Çalıştığın bankada, bakiyesi 5.000 \(’ın altında olan hesaplara 100 \) verilmesine karar verildi. Ancak banka müdürü, 5.000 $’ın altında 200’den fazla hesap varsa bu paranın verilmesini istemiyor.

Sen de bu 100 $’ı vermek için bir betik hazırlıyorsun ve bunu yapmanın çeşitli yolları arasından bir işlem (transaction) başlatıp bakiyesi 5.000 $’ın altındaki her hesabı güncellemeyi seçiyorsun. Ardından, @@ROWCOUNT fonksiyonunu kullanarak güncellemeden etkilenen satır sayısını kontrol ediyorsun. Bu sayı 200’den büyükse işlemi geri alıyorsun (rollback). Aksi halde işlemi onaylıyorsun (commit).

Peki betiği nasıl hazırlarsın?

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.
  • Etkilenen satır sayısının 200’den büyük olup olmadığını kontrol et.
  • Etkilenen satır sayısı 200’den fazlaysa işlemi geri al (ROLLBACK).
  • Etkilenen satır sayısı 200’den küçük veya eşitse işlemi onayla (COMMIT).

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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