sqlserver单用户模式无法改成多用户模式

tlsoft 2021-12-27 481

sqlserver单用户模式无法改成多用户模式
sqlserver设置成单用户模式后不能正常更改成多用户模式报错如下:
此数据库处于单用户模式,当前某个用户已与其连接。
消息 5069,级别 16,状态 1,第 1 行
处理方法:
第一种利用存储过程杀死正在使用数据库的连接:
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 '出问题的数据库名'
再更改模式就好了。
第二种直接杀死进程:
declare @kid varchar(8000)
set @kid=''
select @kid=@kid+' kill '+cast(spid as varchar(8))
from master..sysprocesses
where dbid=db_id('数据库名')
Exec(@kid)
更改成多用户模式:
ALTER DATABASE DB_TYZ SET MULTI_USER



最新回复 (0)
返回
发新帖