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


    今天在删除一个数据库时,一直报错,大意是:此数据库处理单用户模式,尚在连接当中,无法删除(既使将SQLServer停止后再启动也是如此)

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    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了

  • 相关阅读:
    POJ3678 KATU PUZZLE
    poj3321(codevs1228)苹果树
    codevs 1955 光纤通信 USACO
    codevs 1027 姓名与ID
    codevs 1051 接龙游戏
    洛谷 P1717 钓鱼
    codevs 1062 路由选择
    洛谷 P1083 借教室
    codevs 2596 售货员的难题
    Vijos 1053 easy sssp
  • 原文地址:https://www.cnblogs.com/xzlive/p/12971176.html
Copyright © 2020-2023  润新知