SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理

2014-11-24 12:06:25 · 作者: · 浏览: 0
SqlServer:此 数据库处于单用户模式,导致数据库无法删除的处理
今天在删除一个数据库时,一直报错,大意是:此数据库处理单用户模式,尚在连接当中,无法删除(既使将SQLServer停止后再启动也是如此)
百度之后找到了解决办法,备份于此:
 USE [master]

GO

/****** Object:  StoredProcedure [dbo].[killspid]    Script Date: 03/28/2011 11:01:32 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

--建一个存储过程,断开所有用户连接。  

create proc   [dbo].[killspid]   (@dbname   varchar(20))  

as

begin

declare @sql   nvarchar(500)  

declare @spid   int

set @sql='declare   getspid   cursor   for    

select   spid   from   sysprocesses   where   dbid=db_id('''+@dbname+''')'

exec (@sql)  

open getspid  

fetch next from getspid   into @spid  

while   @@fetch_status<>
-1 begin exec('kill '+@spid) fetch next from getspid into @spid end close getspid deallocate getspid end GO 先在master中创建一个存储过程,用于干掉所有连接,然后调用 use master exec killspid '出问题的数据库名'

再删除就ok了