zoukankan      html  css  js  c++  java
  • SQL SERVER 单个用户模式

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

    此时无法更改数据库 '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;
  • 相关阅读:
    C语言中常用的库文件
    Typora 的日志路径
    常用的 C 语言库函数
    C语言中assert断言的用法
    C语言学习摘要
    Linux 下递归赋权
    Android提升进入界面的速度
    JMeter测试工具总结
    Selenium自动化测试总结
    Android 系统启动日志
  • 原文地址:https://www.cnblogs.com/wdkshy/p/13600299.html
Copyright © 2011-2022 走看看