SQLserver - 强力删除数据库两种方法
有时候删除数据库删不了,提示正在运行或者被占用,怎么删都删不掉,这时候就可以试试下面这两种方法了。
<t5>第一种方法</t5>
DECLARE @dbname SYSNAME
SET @dbname = 'bbs' --这个是要删除的数据库库名
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 + ']')
<t5>第二种方法</t5>
这两句语句是利用设置数据库为单用户模式来消除占用并删除数据库,直接操作软件就可以办到,但是很多人找不到,就附代码了。
ALTER DATABASE bookdb2 SET SINGLE_USER with ROLLBACK IMMEDIATE
go
DROP DATABASE bookdb2
go