Merhabalar,
Bugün sizlere SQL uygulamalarında bir query çalıştırırken, hatalı işlemi en aza indirmek için kullandığımız sql transaction işleminin nasıl kullanıldığından bahsedeceğim.
Transaction Ne İşe Yarar?
- Veri bütünlüğünü korur: Kodda bir hata oluştuğunda işlemleri geri alarak tabloların etkilenmesini önler.
- Tutarlılığı sağlar: Birbirine bağlı tablolarda veri tutarlılığının korunmasında önemli bir rol oynar.
Ne Zaman Kullanılır?
Transaction işlemi, özellikle şu durumlarda kullanılır:
- Kritik işlemler: INSERT, UPDATE, DELETE gibi önemli veritabanı değişikliklerinde
- Veri güvenliği: Verinin hatasız kaydedildiğinden emin olmak için
- Hata durumlarında geri alma: İşlem sırasında hata alındığında süreci geriye almak için
Transaction’da COMMIT ve ROLLBACK
- COMMIT: Yapılan değişiklikleri kalıcı olarak veritabanına kaydeder.
- ROLLBACK: Bir hata oluşursa yapılan değişiklikleri geri alarak işlemi iptal eder.
Örnek Senaryo: Kullanıcı E-posta Güncelleme
Bir kullanıcının e-posta adresini güncellemek istiyoruz. Ancak yanlış bir WHERE koşulu (örneğin, koşulu tamamen unutmak) tüm kullanıcıların e-posta adreslerini değiştirebilir.
Bu riski önlemek için BEGIN TRAN, COMMIT ve ROLLBACK komutlarını kullanarak güvenli bir işlem gerçekleştiriyoruz.
-- Transaction başlatılıyor
BEGIN TRAN EmailUpdate;
-- Kullanıcının e-posta adresini güncelleme
UPDATE Users
SET Email = 'new.email@example.com'
WHERE UserID = 1; -- Burada WHERE olmadan çalıştırırsanız tüm kullanıcılar güncellenir!
-- Tabloyu kontrol etmek için SELECT sorgusu
SELECT * FROM Users WHERE UserID = 1;
-- Eğer her şey doğruysa değişiklikleri kaydet
COMMIT TRAN EmailUpdate;
-- Eğer bir hata varsa işlemi geri al
ROLLBACK TRAN EmailUpdate;
Kod Açıklamaları
✅ BEGIN TRAN EmailUpdate: Transaction’ı başlatır.
✅ UPDATE Users: E-posta adresini günceller. WHERE koşulu doğru yazılmazsa tüm kayıtlar güncellenebilir!
✅ SELECT * FROM Users: Güncelleme sonrası veriyi kontrol etmek için sorgu yapılır.
✅ COMMIT TRAN EmailUpdate: Eğer işlem doğruysa değişiklikleri kaydeder.
✅ ROLLBACK TRAN EmailUpdate: Hata fark edilirse tüm değişiklikleri geri alır.
Özet ve Sonuç
- WHERE koşulunun doğru yazılması kritik öneme sahiptir.
- Transaction kullanımı sayesinde olası hatalar önlenebilir ve veri bütünlüğü korunur.
- COMMIT ile işlemler kalıcı hale getirilir, ROLLBACK ile geri alınabilir.
- Özellikle kritik veri değişikliklerinde bu yöntemi kullanmak güvenlik açısından önemlidir.

Sql Transaction Kullanımı