知方可补不足~UPDLOCK更新锁的使用

简介:

对于高并发的场合下,使用UPDLOCK可以有效的控制并发更新的问题,即当一个线程在进行with(UPDLOCK)并进行update时,另一个线程将被阻塞,它会等第一个线程更新结束后,才可以进行它里面的操作,使用UPDLOCK有效的避免了并发更新而产生的数据错误的问题,如累加操作,第二个线程需要等第一个线程累加结束后,才能进行下一步的累加动作,这是我们可以接受的。

测试代码如下

BEGIN TRAN
SELECT  *
FROM    WebManageUsers WITH ( UPDLOCK )
WHERE   LoginName = 'zzl'
WAITFOR DELAY '00:00:10'
UPDATE  WebManageUsers
SET     RealName = 'zzlreal11'
WHERE   LoginName = 'zzl'
COMMIT TRAN

代码运行后,再打开一个SQL客户端,进行下面代码的修改

BEGIN TRAN
SELECT  *
FROM    WebManageUsers WITH ( UPDLOCK )
WHERE   LoginName = 'zzl'
WAITFOR DELAY '00:00:10'
UPDATE  WebManageUsers
SET     RealName = 'zzlreal22'
WHERE   LoginName = 'zzl'
COMMIT TRAN

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:知方可补不足~UPDLOCK更新锁的使用,如需转载请自行联系原博主。

目录
相关文章
|
监控 关系型数据库 MySQL
MySQL锁机制与解决死锁问题
MySQL锁机制与解决死锁问题
628 5
|
算法 应用服务中间件 Shell
搭建高可用负载均衡器: haproxy+keepalived
企业业务量比较小的时候,单台服务器就可以满足业务需要了。但是随着业务发展,单服务器的问题就凸显出来了,如何透明的扩展服务器和带宽,增加服务器吞吐量呢?负载均衡器可以解决以上问题。
10190 47
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之如何解决datax同步任务时报错ODPS-0410042:Invalid signature value
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
缓存 负载均衡 应用服务中间件
|
存储 安全 测试技术
基于SSM+Vue的龙腾公司员工信息管理系统设计与实现(2)
基于SSM+Vue的龙腾公司员工信息管理系统设计与实现
194 0
|
SQL 关系型数据库 MySQL
Navicat使用HTTP通道连接MySQL(远程mysql3306端口关闭或者只允许localhost链接状态)...
Navicat使用HTTP通道连接MySQL(远程mysql3306端口关闭或者只允许localhost链接状态)...
6623 0
Navicat使用HTTP通道连接MySQL(远程mysql3306端口关闭或者只允许localhost链接状态)...
|
存储 SQL NoSQL
云数据库提供了哪些优势和功能?
云数据库提供了哪些优势和功能?
527 0
|
关系型数据库 MySQL Java
解决问题:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowe
解决问题:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowe
2549 0
|
存储 C语言 C++
C多级指针与多维数组
C多级指针与多维数组
25298 2
C多级指针与多维数组
|
Kubernetes 负载均衡 算法
对决:Kubernetes vs Docker Swarm - 谁才是最优秀的容器编排方案?
对决:Kubernetes vs Docker Swarm - 谁才是最优秀的容器编排方案?
994 0

热门文章

最新文章