SqlServer中的更新锁(UPDLOCK)

优点: 允许读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改

当用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加上锁的记录在其它的线程中是不能更改的只能等本线程的事务结束后才能更改

begin tran
select * from address WITH (UPDLOCK) where [Name]='Z'
waitfor delay '00:00:10'
update address set [Name]='ZZ'
commit tran

注意:

在另一个查询里:
如果同样要加更新锁,则会阻塞当前查询,直到其它连接释放更新锁.
如果不加更新锁则直接可以读取更新锁的记录.

这样做是对当前行的锁定,而不是整个表

如果对整个表锁定则严重影响了性能

 

原文地址:https://www.cnblogs.com/niuzaihenmang/p/5640209.html

posted @   *涛*  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-11-20 ScriptX进行Web打印
点击右上角即可分享
微信分享提示