READ UNCOMMITTED izolasyon seviyesini kullanma
Bankana yeni bir müşteri hesap açmak için geliyor. Verilerini sisteme giriyorsun ve aşağıdakine benzer bir betik çalışmaya başlıyor:
BEGIN TRAN
INSERT INTO customers (first_name, last_name, email, phone)
VALUES ('Ann', 'Ros', '[email protected]', '555555555')
DECLARE @cust_id INT = scope_identity()
INSERT INTO accounts (account_number, customer_id, current_balance)
VALUES ('55555555555010121212', @cust_id, 150)
COMMIT TRAN
Tam o sırada, pazarlama ekibinden arkadaşın tüm müşterilere e-posta göndermeye başlıyor. Bir araba çekilişi var! Çalıştırdığı betik, senin az önce eklediğin son müşteri dahil, tüm müşterilerin verilerini çekiyor. Bu betik, ilk INSERT gerçekleştikten sonra ama COMMIT TRAN'den önce çalışmaya başlıyor.
Bu nasıl mümkün olabilir?
Bu egzersiz
SQL Server'da İşlemler ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
READ UNCOMMITTEDizolasyon seviyesini ayarla.customerstablosundanfirst_name,last_name,emailvephonealanlarını seç.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;