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通过重建方式还原master数据库)
- SQL SERVER中查看某个时间段内出错的作业
- sqlserver带参数的存储过程(SQL Server 日期和时间的内部存储过程)
- sqlserver维护计划保存在哪(SQL Server误设置max server memory的处理方法)
- sql server 时间与日期函数(SQL Server日期加减函数DATEDIFF与DATEADD用法分析)
- sql server2008脚本执行(在Sql Server中调用外部EXE执行程序引发的问题)
- sqlserver语句创建窗口布局(SQL Server 2012 开窗函数)
- SQL Server无法连接远程数据库的解决方法
- sqlserver2012如何安装如何使用(Sql server 2012 中文企业版安装图文教程附下载链接)
- sqlserver2016安装教程(SQL server 2016 安装步骤图文教程)
- 安装SQL Server 2016出错提示:需要安装oracle JRE7 更新 51(64位)或更高版本问题的解(安装SQL Server 2016出错提示:需要安装oracle JRE7 更新 5164位或更高版本问题的解)
- sql server中的逻辑读、物理读和预读
- sqlserver分组查询(sql server如何利用开窗函数over进行分组统计)
- sql server2012表的数据删除(SQL Server删除表及删除表中数据的方法)
- sqlserver2000安装之后在哪打开(SQL2000安装后,SQL Server组无项目解决方法)
- centos中安装sql图(CentOS 7.3上SQL Server vNext CTP 1.2安装教程)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
热门推荐
- JS函数前面感叹号的作用
- dede模板如何修改(dede文章页面如何显示作者的头像默认只能显示作者用户名)
- dedecms织梦阁模板(dedecms英文模板 英文网站程序的选择)
- mysql 使用小结(Mysql Online DDL的使用详解)
- vue3.0全家桶教程elementui学习(vite+vue3.0+ts+element-plus快速搭建项目的实现)
- mysql的null值跟空值(你知道mysql中空值和null值的区别吗)
- phpstudy报错(phpStudy运行帝国备份王出错解决方法)
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- 如何用python爬取最新电影(使用python实现抓取腾讯视频所有电影的爬虫)
- react路由组件怎么用(无废话快速上手React路由开发)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9