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

 

posted @ 2014-11-14 13:34  我要找到我的全世界  阅读(249)  评论(0编辑  收藏  举报