下面是断开指定数据库的所有用户连接的一个过程(在master数据库中进行)
//创建要分离的数据库的连接的存储过程
use master
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_KillSpid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) //判断master数据库中是否已经存在该存储过程
drop procedure [dbo].[sp_KillSpid] //若存在则删除该存储过程
GO
create proc sp_KillSpid //创建存储过程
@dbname sysname --要断开连接的数据库名
as
declare @s nvarchar(1000)
declare tb cursor local for //定义游标
select N'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 //判断游标的状态