SQL Server无法删除数据库的解决方法

思路:先删除与此数据库连接的进程,再删除数据库

直接上脚本:

-- 删除与此数据库相关的连接
DECLARE @sql VARCHAR(4000)
SELECT @sql = ISNULL(@sql,'') + 'kill ' + LTRIM(spid) + CHAR(13) from sysprocesses WHERE dbid = DB_ID('DB_Name')
EXEC(@sql)

-- 删除与此数据库相关的所有备份还原历史
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'DB_Name'
GO
USE [master]
GO
-- 设为单身模式
ALTER DATABASE [DB_Name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
-- 删除数据库
DROP DATABASE [DB_Name]
GO