首页 > 数据库技术 > 详细

SQL SERVER 单个用户模式

时间:2020-09-02 11:01:26      阅读:135      评论:0      收藏:0      [点我收藏+]

删除数据库时候,报了个错:

此时无法更改数据库 ‘NIS110‘ 的状态或选项。此数据库处于单用户模式,当前某个用户已与其连接。ALTER DATABASE 语句失败。 (Microsoft SQL Server,错误: 5064)

原因:此数据库处于单用户模式,导致无法删除

百度之后找到了解决办法,备份于此:

USE [master]
GO
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   出问题的数据库名
ALTER DATABASE 出问题的数据库名 SET MULTI_USER;

SQL SERVER 单个用户模式

原文:https://www.cnblogs.com/wdkshy/p/13600299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!