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 + ']')
作者:Tse先生
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。