共用方式為


鎖定相容性 (Database Engine)

鎖定相容性可控制多筆交易是否可同時對相同的資源取得鎖定。若資源已被其他交易鎖定,則只有在要求的鎖定模式與現有鎖定模式相容時,才能授與新的鎖定要求。若所要求鎖定的模式與現有鎖定不相容,則要求新鎖定的交易會等候現有鎖定被釋放,或等候鎖定逾時間隔過期。例如,沒有任何一種鎖定模式與獨佔鎖定相容。有獨佔 (X) 鎖定存在時,其他的交易都無法取得該資源的任何一種鎖定 (共用、更新或獨佔),直到獨佔 (X) 鎖定被釋放為止。此外,如果資源已套用共用 (S) 鎖定,則即使第一筆交易尚未完成,其他的交易仍可取得該項目的共用鎖定或更新 (U) 鎖定。然而在共用鎖定尚未釋放之前,其他的交易仍然無法取得獨占鎖定。

下表顯示常見鎖定模式的相容性。

 

現有已授與的模式

 

 

 

 

 

要求的模式

IS

S

U

IX

SIX

X

意圖共用 (IS)

共用 (S)

更新 (U)

意圖獨占 (IX)

與意圖獨占共用 (SIX)

獨占 (X)

[!附註]

意圖獨佔 (IX) 鎖定與 IX 鎖定模式相容,因為 IX 表示意圖是僅更新某些資料列而非更新全部。嘗試讀取或更新某些資料列的其他交易也可獲得許可,只要這些資料列與其他交易所更新的資料列不相同即可。

完整的鎖定相容性矩陣

使用下表來判斷 MicrosoftSQL Server 中所有可用的鎖定模式之相容性。

顯示鎖定相容性矩陣的圖表