SQLserver无法删除数据库 "XXXX",因为该数据库当前正在使用。

问题描述:

有时候删除库的时候,会显示无法删除数据库,因为该数据库当前正在使用。

解决方法:

方法一:

EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'DB_NAME' --填写数据库名称,(msdb.dbo.sp_delete_database_backuphistory删除数据库备份和还原历史记录信息)
GO
USE [master]
GO
ALTER DATABASE [填数据库名] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE --设置库单用户模式,和设置立即回滚
GO
USE [master]
GO
DROP DATABASE [填数据库名]
GO

方法二:

use master 
go 

declare @dbname sysname 
set @dbname = 'DB_NAME' --填写无法删除的数据库名称

declare @s nvarchar(1000) 
declare tb cursor local 
for 
select s = 'kill ' + cast(spid as varchar) 
from master.dbo.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 + ']')

猜你喜欢

转载自www.cnblogs.com/Sungeek/p/10880496.html