SET Transaction Isolation Level Read語法的四種情況
阿新 • • 發佈:2018-06-26
ble 作用 read 隔離級別 eve 之前 出現 相同 更新
存儲過程:SET Transaction Isolation Level Read語法的四種情況
這幾天一直在弄存儲過程,現在在這裏跟大夥共享下資料:SET Transaction Isolation Level Read UNCOMMITTED
使用這句東東呢可以分為四種情況,現在就在這裏逐一介紹:
第一種情況:
READ COMMITTED
這句的作用是:
指定在讀取數據時控制共享鎖以避免臟讀,但數據可在事務結束前更改,從而產生不可重復讀取或幻像數據。該選項是 SQL Server 的默認值。
第二種情況:
READ UNCOMMITTED
這句的作用是:
執行臟讀或0級隔離鎖定,這表示不發出共享鎖,也不接受排它鎖。當設置該選項時,可以對數據執行未提交讀或臟讀;在事務結束前可以更改數據內的數值,行也可以出現在數據集中或從數據集消失。該選項的作用與在事務內所有語句中的所有表上設置 NOLOCK 相同。這是四個隔離級別中限制最小的級別。
第三種情況:
REPEATABLE READ
這句的作用是:
鎖定查詢中使用的所有數據以防止其他用戶更新數據,但是其他用戶可以將新的幻像行插入數據集,且幻像行包括在當前事務的後續讀取中。因為並發低於默認隔離級別,所以應只在必要時才使用該選項。
第四種情況:
SERIALIZABLE
這句的作用是:
在數據集上放置一個範圍鎖,以防止其他用戶在事務完成之前更新數據集或將行插入數據集內。這是四個隔離級別中限制最大的級別。因為並發級別較低,所以應只在必要時才使用該選項。該選項的作用與在事務內所有 SELECT 語句中的所有表上設置 HOLDLOCK 相同。
SET Transaction Isolation Level Read語法的四種情況