SQL SERVER WITH (NOLOCK)
//210214 - MT eğer BEGIN TRAN
ile bir blok başlatılmış ise, blok içinde işlem sonlana kadar erişilmiş satırlar kilitleniyor ve sen BEGIN TRAN aralığında erişilmiş satırlara ayrıca bir QUERY den erişmeye çalışırsan ve WITH (NOLoCK) demediysen o satırlara erişimine izin verilmediği gibi QUERY beklemede kalıyor.
örnek:
BEGIN TRAN
UPDATE dbo.iller SET il_adi = 'KADANA' where il_id = 2
PRINT 'DURAKSA';
ROLLBACK
yukarıdaki komut
PRINT 'DURAKSA'; satırında durdurulsun. ve aşağıdaki sorgu ayrı bir bölümde çalıştırılmaya çalışılsın. sonuç: işlem sonsuz döngüdeki gibi beklemede kalacak ve sonuç dönmeyecektir.
SELECT * FROM dbo.iller WHERE il_id = 2
eğer aşağıdaki gibi çalıştırılırsa sorunsuz olarak sorgu çalışacak ve sonuç verecektir.
SELECT * FROM dbo.iller WITH(NOLOCK) WHERE il_id = 2
------------- http://www.kasatakip.com - Kasa Takip | http://www.caritakip.com - Cari Takip | http://www.evraktakip.com - Evrak Takip | http://www.etasqlmobil.com - ETA SQL Mobil
|