slerver 锁表 解锁

本文详细介绍了数据库中如何锁定和解锁表的操作,包括使用`WITH(HOLDLOCK)`和`WITH(TABLOCKX)`两种锁定方式,以及查询当前锁状态的方法。`WITH(HOLDLOCK)`允许其他事务读取但阻止更新和删除,而`WITH(TABLOCKX)`则完全阻止其他事务读取、更新和删除。此外,还提供了一个示例存储过程来解除特定SPID的锁。
摘要由CSDN通过智能技术生成

锁表  

锁定数据库的一个表

SELECT * FROM table WITH (HOLDLOCK)

注意: 锁定数据库的一个表的区别

SELECT * FROM table WITH (HOLDLOCK)

其他事务可以读取表,但不能更新删除

SELECT * FROM table WITH (TABLOCKX)

其他事务不能读取表,更新和删除


    

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

解锁

ALTER PROCEDURE [dbo].[spidwith]
AS
BEGIN
    declare @spid int
Set @spid = 53 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值