sql-删除无效sql链接

create proc dtLink
(
@dbName varchar(50) --数据库名称
)
as

--查询临时表是否存在
if(OBJECT_ID(temp..db) is not null)
begin
    drop table #TempTable
end


--创建临时表
create table #TempTable
(
spid int,
ecid int,
status varchar(32),
loginname varchar(32),
hostname varchar(32),
blk int,
dbname varchar(32),
cmd varchar(32),
request_id int
)

--给临时表插入数据
insert into #TempTable
exec sp_who
/*
select * from #TempTable
where spid = @@SPID
*/

--定义游标
declare cus_dtLink cursor scroll for
select spid from #TempTable
where dbname = @dbName
and status = sleeping
and spid <> @@SPID

--定义变量
declare @spid int

--打开游标
open cus_dtLink

declare @sql varchar(200)

--执行游标
fetch next from cus_dtLink into @spid

--循环杀连接
while(@@FETCH_STATUS = 0)
begin
    select @sql = kill  + cast(@spid as varchar(20))
    exec(@sql)
    fetch next from cus_dtLink into @spid
end
--关闭游标
close cus_dtLink
--释放游标
deallocate cus_dtLink

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。