当前位置: 首页 > article >正文

SqlServer查看锁表与解锁

某些情况下,sqlserver的表会被锁住,比如某个会话窗口有数据一直没提交,窗口又没关闭,这时表就会被锁住
其他任何连接查询表数据时都不会返回
这时需要手工杀掉产生死锁的会话ID,才能恢复正常

一,查看表锁

select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'

假设查询执行时,系统中有两个会话分别在不同的表上持有对象锁,返回的结果可能如下所示:

在这里插入图片描述

在这个示例中:

会话 ID 为 54 的会话在 Employees 表上持有对象锁。
会话 ID 为 78 的会话在 Orders 表上持有对象锁。

二,解锁

declare @spid  int 
Set @spid  = 57 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid  as varchar)
exec(@sql)

sql server在执行查询语句时会锁表。在锁表期间禁止增删改操作。
如果不想锁表,那就再表名或别名后面加上WITH(NOLOCK)(这种操作会出现脏的,慎用!)
如下所示:

SELECT Id FROM dbo.T_Table WITH(NOLOCK) WHERE Id = 1

http://www.kler.cn/a/536913.html

相关文章:

  • Kubernetes是什么?为什么它是云原生的基石
  • vue项目如何设置默认页面
  • 文件基础IO
  • 深度学习01 神经网络
  • 【分布式理论六】分布式调用(4):服务间的远程调用(RPC)
  • IDEA使用Auto-dev+DeepSeek 10分钟快速集成,让java开发起飞
  • 零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
  • 备赛蓝桥杯之第十五届职业院校组省赛第四题:多表单校验
  • Android开发签名校验
  • 新能源产业的质量革命:六西格玛培训如何重塑制造竞争力
  • uniapp实现人脸识别(不使用三方插件)
  • ISP代理与住宅代理的区别
  • MySQL——数据库的操作
  • 【重新认识C语言----文件管理篇】
  • 【面试场景】MySQL分布式主键选取
  • C++,设计模式,【单例模式】
  • NetCore Consul动态伸缩+Ocelot 网关 缓存 自定义缓存 + 限流、熔断、超时 等服务治理 + ids4鉴权
  • 学习率调整策略 | PyTorch 深度学习实战
  • IntelliJ IDEA新版本的底部version control(或git)里local change窗口显示配置修改详细教程
  • PHP填表统计预约打卡表单系统小程序
  • 配置GitHub和PicGo的详细步骤
  • 通过Python编写的中国象棋小游戏
  • mac 安装 dotnet 环境
  • 嵌入式硬件篇---OpenMV串口通信json字符串
  • Redis | 十大数据类型
  • Spring Boot:解决现代Java应用开发的难题