Sql Server 更新锁
Sql Server 更新锁
Sql Server 更新锁
更新锁的意思是:“我现在只想读,你们别人也可以读,但我将来可能会做更新操作,我已经获取了从共享锁(用来读)到排他锁(用来更新)的资格”。一个事物只能有一个更新锁获此资格。
Sql Server 更新锁实例
为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求
1、实例1
T1: begin tran select * from table(updlock) --(加更新锁)update table set column1='hello'
T2:
begin tran
select * from table(updlock)
update table set column1='world'
分析
T1执行select,加更新锁。 T2运行,准备加更新锁,但发现已经有一个更新锁在那儿了,只好等。 当后来有user3、user4...需要查询table表中的数据时,并不会因为T1的select在执行就被阻塞
2、实例2
T1:select * from table(updlock) --(加更新锁)T2: select * from table(updlock) --(等待,直到T1释放更新锁,因为同一时间不能在同一资源上有两个更新锁)
T3: select * from table --(加共享锁,但不用等updlock释放,就可以读)
说明
共享锁和更新锁可以同时在同一个资源上。这被称为共享锁和更新锁是兼容的。
3、实例3
T1: begin select * from table(updlock) --(加更新锁)update table set column1='hello' (--重点:这里T1做update时,不需要等T2释放什么,而是直接把更新锁升级为排他锁,然后执行update)
T2:
begin
select * from table --(T1加的更新锁不影响T2读取)
update table set column1='world' --(T2的update需要等T1的update做完才能执行)
分析
- sqlserver登录身份验证(SQL Server 2012 身份验证Authentication)
- SQL Server中时间类型的范围
- SQL Server数据类型有哪些
- sqlserver 高级查询(SQL Server2019数据库之简单子查询的具有方法)
- sql server 2019 资源不足不可信(SQL Server异常代码处理的深入讲解)
- sql server使用手册(SQL Server连接查询的实用教程)
- sqlserver日期型数据类型是哪个(SQL Server时间戳功能与用法详解)
- sql server日期查询语句(SQL Server中查询结果超出了查询时间范围解决方法)
- SQL Server获取时间段内的所有月份
- sql server convert 函数(sql server通过pivot对数据进行行列转换的方法)
- SQL Server的恢复模式
- activiti需要sql语句吗(Activiti-Explorer使用sql server数据库实现方法)
- sqlserver删除表的第一行数据(sql server删除前1000行数据的方法实例)
- sqlserver实例全库备份(sql server通过脚本进行数据库压缩全备份的方法推荐)
- sqlserver触发器修改当前字段(利用SQL Server触发器实现表的历史修改痕迹记录)
- sql server语法大全(SQL Server 全文搜索功能介绍)
- 周杰伦演唱会门票(周杰伦演唱会门票多少钱一张2023)
- 焕然一新 成都轨道集团官方网站改版上线(成都轨道集团官方网站改版上线)
- 成都轨道交通19号线二期全线电通(成都轨道交通19号线二期全线电通)
- 19号线二期全线电通 轨道交通项目最新进展来了(19号线二期全线电通)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9