代码之家  ›  专栏  ›  技术社区  ›  Alex Gordon

SQL Server 2008如何断开所有人与数据库的连接?

  •  13
  • Alex Gordon  · 技术社区  · 14 年前

    我需要重命名数据库,但是我不能,因为其他进程正在使用它。我不在乎这个过程,我需要扼杀它。

    如何从数据库中删除所有连接?

    4 回复  |  直到 9 年前
        1
  •  23
  •   Martin Smith    14 年前

    根据我的意见 single_user 模式需要从同一个连接进行重命名。不要尝试通过对象资源管理器重命名它,因为这样会尝试打开一个新的连接。以下工作到此结束…

    ALTER DATABASE AdventureWorks SET single_user WITH ROLLBACK IMMEDIATE
    
    ALTER DATABASE AdventureWorks MODIFY NAME = NewAdventureWorks
    
    ALTER DATABASE NewAdventureWorks SET multi_user 
    
        2
  •  9
  •   SQLMenace    14 年前

    这样地: Kill All Active Connections To A Database

    ALTER DATABASE oldNameSET SINGLE_USER WITH ROLLBACK IMMEDIATE
    
    EXEC sp_renamedb 'oldName', 'newName'
    
    ALTER DATABASE newName SET MULTI_USER  --new name of course
    
        3
  •  2
  •   Stu    14 年前

    运行sp_who,然后为数据库中的每个人杀死[pid]。

        4
  •  0
  •   Nathan Tuggy TonyLuigiC    9 年前

    这对我来说很好,可以重命名数据库并强制断开所有人的连接:

    ALTER DATABASE [old_name]
        SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    ALTER DATABASE [old_name]
        MODIFY NAME = [new_name]
    GO
    ALTER DATABASE [new_name]
        SET MULTI_USER
    GO