小米笔记 - 坏记性不如烂笔头

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

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »