此數據庫處於單用戶模式,當前某個用戶已與其連接。 ALTER DATABASE 語句失敗。 (Microsoft SQL Server,錯誤: 5064)


刪除數據庫時候,報了個錯:

此時無法更改數據庫 '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   '出問題的數據庫名'

再刪除就ok了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM