数据库正在使用,无法删除

收集整理了两种方法,杀进程和回滚。

杀进程:

USE MASTER    
GO    
     
DECLARE @dbname SYSNAME    
SET @dbname = 'databasename' --这个是要删除的数据库库名    
     
DECLARE @s NVARCHAR(1000)    
DECLARE tb CURSOR LOCAL   
FOR  
    SELECT s = 'kill   ' + CAST(spid AS VARCHAR)  
    FROM   MASTER..sysprocesses  
    WHERE  dbid = DB_ID(@dbname)    
     
OPEN   tb      
FETCH   NEXT   FROM   tb   INTO   @s    
WHILE @@fetch_status = 0  
BEGIN  
    EXEC (@s)   
    FETCH NEXT FROM tb INTO @s  
END    
CLOSE   tb    
DEALLOCATE   tb    
  
EXEC ('drop   database   [' + @dbname + ']') 


回滚:

use master
go
alter database database_name set single_user with rollback immediate 
--将数据库回滚到原始配置状态
 
go
drop database database_name--删除数据库
go

展开阅读全文

没有更多推荐了,返回首页