收集整理了两种方法,杀进程和回滚。
杀进程:
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