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

XACT_ABORT ve THROW

Çalıştığın bankanın en varlıklı müşterileri, current_balance tutarlarının %0,01’ini bir sivil toplum kuruluşuna bağışlamaya karar verdi. Müşteri hesaplarını güncelleyecek betiği (script) hazırlamak senin görevin; ancak bunu yalnızca current_balance değeri 5.000.000 $’dan fazla olan hesaplar için yapmalısın. Banka müdürü, en az 10 varlıklı müşteri yoksa bu işlemi yapmaman gerektiğini, çünkü daha fazla müşteriyle görüşmek istediğini söylüyor.

Bir betik hazırlıyorsun ve bunu yapmanın çeşitli yolları olsa da XACT_ABORT ile THROW kombinasyonunu kullanmayı seçiyorsun. Böylece, etkilenen satır sayısı 10’dan az veya 10’a eşitse bir hata fırlatıp işlemi geri aldırabilirsin.

Bu egzersiz

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

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

Egzersiz talimatları

  • XACT_ABORT için uygun ayarı kullan.
  • İşlemi (transaction) başlat.
  • Etkilenen satır sayısı 10’dan az veya 10’a eşitse, THROW deyimini 55000 numarasıyla kullanarak hatayı fırlat.
  • Etkilenen satır sayısı 10’dan fazlaysa işlemi onayla (COMMIT).

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

-- Use the appropriate setting
SET XACT_ABORT ___;
-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance - current_balance * 0.01 / 100
		WHERE current_balance > 5000000;
	IF @@ROWCOUNT <= 10	
    	-- Throw the error
		___ ___, 'Not enough wealthy customers!', 1;
	ELSE		
    	-- Commit the transaction
		___ ___; 
Kodu Düzenle ve Çalıştır