mssql 锁的操作

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

if OBJECT_ID(N'tempdb..#locktable',N'U') is not null DROP TABLE #locktable
select IDENTITY(INT, 1,1) AS id1,  request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName  
INTO #locktable 
from   sys.dm_tran_locks where resource_type='OBJECT'
SELECT * FROM #locktable
DELETE FROM #locktable WHERE  ISNULL(tableName,'')=''

-- 解锁表
declare @sql varchar(8000)
declare @spid INT
 DECLARE @i INT,@maxi INT
 SELECT @i=1, @sql='', @maxi=MAX(id1) FROM #locktable 
 WHILE @i<= @maxi
 BEGIN
    SELECT  @spid =spid FROM #locktable WHERE id1=@i      --锁表进程
    set @sql=@sql+ '
            kill '+cast(@spid as varchar);
            
    SET @i=@i+1        
END
PRINT(@sql)
exec(@sql)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值