SQLServer之建立不可重複讀

2021-09-24 08:33:58 字數 1032 閱讀 6828

語法:set transaction isolation level repeatable read。

指定語句不能讀取已由其他事務修改但尚未提交的行,並且指定,其他任何事務都不能在當前事務完成之前修改由當前事務讀取的資料。

對事務中的每個語句所讀取的全部資料都設定了共享鎖,並且該共享鎖一直保持到事務完成為止。 這樣可以防止其他事務修改當前事務讀取的任何行。 其他事務可以插入與當前事務所發出語句的搜尋條件相匹配的新行。 如果當前事務隨後重試執行該語句,它會檢索新行,從而產生虛擬讀取。 由於共享鎖一直保持到事務結束,而不是在每個語句結束時釋放,因此併發級別低於預設的 read committed 隔離級別。 此選項只在必要時使用。

修改會話指令碼示例:

--宣告資料庫引用

use testss;

go--開始事務

begin transaction readtran

update test1 set name='事務不可重複讀' where id='1';

waitfor delay '00:00:10';

commit transaction;

go讀取會話指令碼示例:

--宣告資料庫引用

use testss;

go--開啟事務

begin transaction trans

select * from test1 where id='1';

commit transaction;go

讀取會話指令碼示例:

--宣告資料庫引用

use testss;

go--設定會話隔離級別

set transaction isolation level repeatable read;

--開啟事務

begin transaction trans

select * from test1 where id='1';

commit transaction;

go修改會話:依次顯示為執行狀態和執行結果。

讀取會話:依次顯示為執行狀態和執行結果。

SQLServer之建立不可重複讀

語法 set transaction isolation level repeatable read。指定語句不能讀取已由其他事務修改但尚未提交的行,並且指定,其他任何事務都不能在當前事務完成之前修改由當前事務讀取的資料。對事務中的每個語句所讀取的全部資料都設定了共享鎖,並且該共享鎖一直保持到事務完...

生命不可承受之重

放下 心,不由得沉重起來,我知道那意味著什麼。周身疼痛,除了癌細胞在不停地無情地擴 散,還有什麼其他的可能?這幾個月來,每次打 回去,總是小心翼翼地問起四姐的病情,然後屏住呼吸等候那邊傳來或 好或壞的訊息。如同不敢觸及身上那道深深的傷口,心中卻又難以割捨得下,那份隱痛讓人變得敏感 脆弱,卻又無能為力...

SQLServer之建立提交讀

語法 set transaction isolation level read committed。資料庫預設的是兩個會話事務之間是提交讀。read committed指定語句不能讀取已由其他事務修改但尚未提交的資料。這樣可以避免髒讀。其他事務可以在當前事務的各個語句之間更改資料,從而產生不可重複讀...