Huang

Huang

此資料庫處於單一使用者模式,導致無法刪除該資料庫的處理。

今天在刪除一個資料庫時,一直報錯,大意是:此資料庫處理單使用者模式,尚在連接當中,無法刪除(即使將 SQLServer 停止後再啟動也是如此)

百度之後找到了解決辦法,備份於此:

USE [master]
GO
 
/****** Object:  StoredProcedure [dbo].[killspid]    ******/
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   '出問題的資料庫名'

執行完就能對資料庫進行操作了。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。