储存过程关闭数据库

/*
断开所有用户打开的连接
*/
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 procedure p_killspid
@dbname sysname--要关闭进程的数据库名
as
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)

open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go

--用法
exec p_killspid 'omenterpriseanalyse'--数据库名称
drop procedure [dbo].[p_killspid]

posted on 2008-01-08 22:44  Above The Sky  阅读(219)  评论(0编辑  收藏  举报

导航