COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
39/ 65

Modelleme ve veri değişimi

Transaction, ACID ve TRY/CATCH

Bir iş adımı ya tamamlanır ya geri alınır.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Transaction birden fazla değişikliği iş birimi olarak ele alır. Atomicity parçalı kalmamayı, consistency kısıtların korunmasını, isolation eşzamanlılık davranışını, durability kalıcı tamamlanmayı ifade eder. BEGIN TRANSACTION başlatır, COMMIT kalıcılaştırır, ROLLBACK geri alır. Uzun açık transaction kilitleri ve log kullanımını büyütebilir.

TRY/CATCH hata yakalar; SET XACT_ABORT ON birçok çalışma zamanı hatasında transaction’ın sonlandırılma davranışını iyileştirir. CATCH içinde XACT_STATE() ile aktif transaction durumunu kontrol edip gerekirse rollback yap ve THROW ile hatayı saklamadan geri ilet. Başarı mesajı verirken gerçekte başarısız yazmayı gizleme.

NERESİNDE KULLANIRSIN?

Sipariş–kalem ekleme, stok azaltma ve ilişkili finansal değişiklikler için.

SIK YAPILAN HATA

Hata yakalayıp transaction’ı açık bırakmak veya başarısız işlemi başarılı göstermek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
BEGIN TRANSACTION; SELECT @@TRANCOUNT AS OpenTransactions; ROLLBACK;

Açık transaction sayısını görüp geri alır.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Geri alma sonrası Laptop stoğunun başlangıç değerinde kaldığını kontrol et.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT Stock FROM lab.Product WHERE ProductId = 1;

Başlangıç değeri 8. Başka kalıcı değişiklik yaptıysan örnek sonucu değişir.