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, kursun bir parçasıdır
SQL Server'da İşlemler ve Hata Yönetimi
Egzersiz talimatları
READ UNCOMMITTEDizolasyon seviyesini ayarla.customerstablosundanfirst_name,last_name,emailvephonealanlarını seç.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;