SQL Server 中 ROWLOCK 行級鎖

2021-07-27 23:43:18 字數 1008 閱讀 2139

一、rowlock的使用

1、rowlock行級鎖確保,在使用者取得被更新的行,到該行進行更新,這段時間內不被其它使用者所修改。因而行級鎖即可保證資料的一致性,又能提高資料操作的併發性。

2、rowlock告訴sql server只使用行級鎖,rowlock語法可以使用在select,update和delete語句中。

3、例如select語句中

a 連線中執行 

settransaction

isolation

level

repeatable

read

begin

tran

select

*from

tablename 

with

(rowlock,updlock) 

whereid=

3

waitfor

delay 

'00:00:05

'commit

tran

b連線中如果執行 

update

tablename 

setcolname='

10'whereid=

3

--則要等待5秒 

update

tablename 

setcolname='

10'where

id <>

3

--可立即執行 

二、sql server中使用rowlock需要注意的地方

1、如果你錯誤地使用在過多行上,資料庫並不會聰明到自動將行級鎖公升級到頁面鎖,伺服器也會因為行級鎖的開銷而消耗大量的記憶體和cpu,直至無法響應。

2、select 語句中,rowlock在不使用組合的情況下是沒有意義的,with(rowlock,updlock) 這樣的組合才成立,查詢出來的資料使用rowlock來鎖定,當資料被update的時候,鎖將被釋放

sqlserver 中Cube,rollup的使用

一 select from cj 1張三語文80.0 2張三數學90.0 3張三物理85.0 4李四語文85.0 5李四數學92.0 6李四物理82.0 二 select name,sum result from cj group by name 李四259.0 張三255.0 三 select n...

sql server 中語法校驗

在今天的培訓考試過程中,我提出乙個擴充套件題,要求對提交的sql進行語法校驗.其實這個題很簡單,根本不需要用正規表示式去做語法分析,可以直接使用sql server自帶的功能.不多說,上 alter proc sp checksql sql varchar 8000 error varchar ma...

SQL Server中的查詢

本博文簡單介紹一下sql server中常用的幾類查詢及相關使用的方法。一 executescalar方法獲取單一值 executescalar方法是sqlcommand類的方法之一,執行查詢,並返回查詢所返回的結果集中的第一行第一列。csharp view plain copy print cla...