1、ROWLOCK的使用html
一、ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改。于是行级锁便可保证数据的一致性,又能提升数据操做的并发性。数据库
二、ROWLOCK告诉SQL Server只使用行级锁,ROWLOCK语法可使用在SELECT,UPDATE和DELETE语句中。服务器
三、例如select语句中并发
A 链接中执行
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
select * from tablename with (rowlock,UpdLock) where id=3
waitfor delay '00:00:05'
commit tran spa
B链接中若是执行
update tablename set colname='10' where id=3 --则要等待5秒
update tablename set colname='10' where id <>3 --可当即执行
htm
2、SQL Server中使用ROWLOCK须要注意的地方内存
一、若是你错误地使用在过多行上,数据库并不会聪明到自动将行级锁升级到页面锁,服务器也会由于行级锁的开销而消耗大量的内存和CPU,直至没法响应。get
二、select 语句中,RowLock在不使用组合的状况下是没有意义的,With(RowLock,UpdLock) 这样的组合才成立,查询出来的数据使用RowLock来锁定,当数据被Update的时候,锁将被释放it
参考资料: SQL Server 中 ROWLOCK 行级锁 http://www.studyofnet.com/news/1047.htmltable