隐藏

MSSQL定义一个被锁死表游标,并杀死被锁SPID

发布:2022/4/21 9:12:03作者:管理员 来源:本站 浏览次数:914



declare @spid int
declare @tableName varchar (50)
declare @str varchar (50)
 
--定义一个游标

declare user_cur cursor for
SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName FROM sys.dm_tran_locks WHERE resource_type='OBJECT '

--打开游标
open user_cur
while @@fetch_status=0
begin
--读取游标
   fetch next from user_cur into @spid,@tableName
   print @spid
   set @str= 'KILL '+convert(varchar(20),@spid)
   exec(@str)
   --print @Login
end
close user_cur
--摧毁游标
deallocate user_cur