sql server隔離 收藏
sql server隔離語句如下:
set transaction isolation level
{ read uncommitted
| read committed
| repeatable read
| snapshot
| serializable
一次只能設定乙個隔離級別選項,而且設定的選項將一直對那個連線始終有效,直到顯式更改該選項為止。事務中執行的所有讀取操作都會在指定的隔離級別的規則下執行,除非語句的 from 子句中的表提示為表指定了其他鎖定行為或版本控制行為。
事務從乙個隔離級別更改為另乙個隔離級別時的鎖定行為如下表:
read uncommitted read uncomitted:
未更改。
read committed:
該行為取決於 read_committed_snapshot 資料庫選項的設定:
如果為 off,事務將獲取共享鎖,並在讀取期間保留鎖。
如果為 on,事務會使用行版本控制。
snapshot:
事務必須已作為 snapshot 啟動。事務將會失敗,並將回滾所有更改。
repeatable read:
現在該事務將獲取共享鎖,並在事務期間保留鎖。
serializable:
現在該事務將獲取範圍鎖,並在事務期間保留鎖。
read committed read uncomitted:
事務不再獲取用於讀取操作的鎖。
read committed:
未更改。
snapshot:
事務必須已作為 snapshot 啟動。事務將會失敗,並將回滾所有更改。
repeatable read:
現在該事務將獲取共享鎖,並在事務期間保留鎖。
serializable:
現在該事務將獲取範圍鎖,並在事務期間保留鎖。
snapshot read uncomitted:
事務不再使用行版本控制,並且不再獲取用於讀取操作的鎖。
read committed:
該行為取決於 read_committed_snapshot 資料庫選項的設定:
如果為 off,事務將獲取共享鎖,並在讀取期間保留鎖。
如果為 on,事務會使用行版本控制。
snapshot:
未更改。
repeatable read:
該事務不再使用行版本控制。現在它獲取了共享鎖,並在事務執行期間一直保持該鎖。
serializable:
該事務不再使用行版本控制。現在它獲取了範圍鎖,並在事務執行期間一直保持該鎖
repeatable read read uncomitted:
該事務在讀取操作時不再獲取鎖。在 repeatable read 下獲取的共享鎖保留到事務結束。
read committed:
該行為取決於 read_committed_snapshot 資料庫選項的設定:
如果為 off,事務將獲取共享鎖,並在讀取期間保留這些新鎖。
如果為 on,事務會使用行版本控制。
在 repeatable read 下獲取的共享鎖保留到事務結束。
snapshot:
事務必須已作為 snapshot 啟動。事務將會失敗,並將回滾所有更改。
repeatable read:
未更改。
serializable:
現在該事務將獲取範圍鎖,並在事務期間保留鎖。在 repeatable read 下獲取的共享鎖保留到事務結束。
示例**如下:
use adventureworks;
goset transaction isolation level repeatable read;
gobegin transaction;
goselect *
from humanresources.employeepayhistory;
goselect *
from humanresources.department;
gocommit transaction;
go
SQL 事務隔離級別
髒讀 包含未提交資料的讀。例如,事務1 更改了某行。事務2 在事務1 提交更改之前讀取已更改的行。如果事務1 回滾更改,則事務2 便讀取了邏輯上從未存在過的行。不可重複讀取 當某個事務不止一次讀取同一行,並且乙個單獨的事務在兩次 或多次 讀取之間修改該行時。因為在同乙個事務內的多次讀取之間修改了該行...
SQL 隔離級別與事務
前言 事物 事物是指一組原子性的sql查詢。如 銀行轉賬 a要轉賬給b100,在資料庫中至少三步 1.a的賬戶查詢餘額大於100,2.a賬戶減少100,3.b的賬戶要增加100這樣這個事物才算真的完成,這裡的幾條sql語句應該一起完成或者失敗,失敗就會發生回滾,成功則提交事務。隔離 隔離的產生主要是...
事務的隔離級別舉例 事務的隔離級別
乙個事務是乙個完整的業務邏輯單元,不能再分,要麼全部執行成功,要麼全部失敗。比如 a給b轉賬100元,a的銀行卡就會少100元,b的銀行卡就會多100元,整個過程要麼全部執行成功,要麼全部失敗。a 原子性。事務是最小的業務邏輯單元。b 一致性。乙個事務必須保證多條dml語句同時成功或失敗。c 隔離性...