杀掉数据库用户打开的连接的方法

--断开所有用户打开的连接
use master
go

if exists(select * from dbo.sysobjects where id=object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id,N'IsProcedure')=1)
drop procedure [dbo].[p_killspid]
GO

create proc p_killspid
@dbname varchar(
200) --要关闭进程的数据库名
as
declare @sql nvarchar(
500)
declare @spid nvarchar(
20)

declare #tb cursor
for
select spid
=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetch next from #tb into @spid
while @@fetch_status=0
begin
exec(
'kill '+@spid)
fetch next from #tb into @spid
end
close #tb
deallocate #tb
go

--断开所有用户打开的连接
--用法
exec p_killspid
'PCB_Test'
go
posted @ 2011-02-15 15:55  风景这边独好  阅读(330)  评论(0)    收藏  举报