1. 程式人生 > >SET Transaction Isolation Level Read語法的四種情況

SET Transaction Isolation Level Read語法的四種情況

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語法的四種情況