首页 > 数据库 >sqlserver 简单锁实例

sqlserver 简单锁实例

时间:2023-01-10 21:38:55浏览次数:47  
标签:session 语句 李四 -- 张三 sqlserver 实例 简单 id



/*以此表为例:
SELECT * FROM tb

姓名 课程 分数
---------------------
张三 语文 74
张三 数学 83
李四 语文 74
李四 数学 84
李四 物理 94
*/


--新建第一个会话窗口,执行以下语句:
BEGIN TRAN
UPDATE dbo.tb
SET 分数 = 85
WHERE 姓名 = '张三'
AND 课程 = '语文'
--COMMIT TRAN


--新建第二个会话窗口,执行以下语句:
UPDATE dbo.tb
SET 分数 = 90
WHERE 姓名 = '张三'
AND 课程 = '语文'


/*
此时第二个窗口一直处于执行状态;
新建第三个会话窗口,用于分析查看阻塞语句;
*/

--查看锁的信息,更多信息(sp_lock:http://msdn.microsoft.com/zh-cn/library/ms187749.aspx)
exec sp_lock;
--SELECT * FROM sys.dm_tran_locks; --比第一个信息多些




sqlserver 简单锁实例_执行状态



--可以看到,会话ID号 spid=54 处于等待状态,mode='U'为更新锁
--下面查看 session_id=54 是被什么会话阻塞了.

SELECT blocking_session_id, wait_duration_ms, session_id
FROM sys.dm_os_waiting_tasks
WHERE session_id=54
go

--或
EXEC sp_who2 active --BlkBy 被谁阻塞……



sqlserver 简单锁实例_执行状态_02



--结果为session_id=52阻塞了.接下来看看其运行了什么语句;
SELECT t.text
FROM sys.dm_exec_connections c
CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t
WHERE c.session_id = 52


sqlserver 简单锁实例_sql_03



--直接删除session_id = 52的会话,此会话的语句中断,后面的语句正常执行;
KILL 52

SELECT * FROM tb
/*
姓名 课程 分数
---------------------
张三 语文 90
张三 数学 83
李四 语文 74
李四 数学 84
李四 物理 94

*/







标签:session,语句,李四,--,张三,sqlserver,实例,简单,id
From: https://blog.51cto.com/hzc2012/6000707

相关文章

  • SQLServer 2012 字符串函数
    --【SQLServer2012字符串函数】--1.【ASCII】返回字符表达式中最左侧的字符的ASCII代码值SELECTASCII('A'),ASCII(''),ASCII('@'),ASCII('黄')--结果:653264187......
  • sqlserver 逻辑执行步骤分析
    --分析语句SETSHOWPLAN_ALLON--只输出分析结果SETSTATISTICSPROFILEON--输出语句结果和分析结果先创建分析表:/*DROPTABLECUSTOMERSDROPTABLEPRODUCTSDROPTA......
  • SQLServer 2008 FileStream简单实例
    1.打开服务,内置账户为localsystem。(其它不行)2.选择选项FileStream,勾选以下。然后重启服务3.打开managementstudio,右键服务—属性。点击高级,会看到‘文件流’中‘文件流......
  • leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]
    目录168.Excel表列名称171.Excel表列序号190.颠倒二进制位205.同构字符串228.汇总区间448.找到所有数组中消失的数字461.汉明距离876.链表的中间结点836.矩形重......
  • 学习记录-简单工厂模式
    简单工厂模式工厂模式(FactoryPattern)是Java中最常用的设计模式之一。简单工厂模式(SimpleFactoryPattern),又称为静态工厂方法(StaticFactoryMethod)模式,它属于类创建型......
  • 用python做个简单的监控
    今天在看博客园的时候看到一篇文章,忘记是什么地址了,之前我也做过一个类似的监控,不过不好控制。之前的模式是通过内网地址访问相应的php程序,php调用python程序,能捕获到摄像......
  • 软件测试最常用的 SQL 命令 | 通过实例掌握基本查询、条件查询、聚合查询
    缩写全称和对应SQL:现在有这样一个公司部门人员各个信息的数据库,包含了如下几个表:departments部门表字段:dept_emp雇员部门表字段:dept_manager领导部门表字段:employees雇......
  • 简单的猜数字游戏
    猜数字游戏的难点肯定是生成随机数,我现在只学了一种伪随机生成的办法,顺便分享一下学习中调用函数的感悟。首先,我从网上得知使用rand函数生成随机数,于是我打开了cplusplus,去......
  • K8s 安装、部署与卸载(简单版本)
    安装了好几天,感觉网上大佬都是骗人的,后来又发现大佬们并没有骗人,只不过一些详细的地方没有细说,走了好多弯路啊o(╥﹏╥)o,后来慕课网找了视频才进入了正道,接下来搞个简单版本......
  • 学习-Vue2-Vue实例-数据与方法-数据的响应式
    当一个实例被创建时,它将data对象中的所有的property加入到Vue的响应式系统中。当这些property的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。当这些数据改变时,......