sql server 2008如何从我的数据库断开所有人的连接?

时间:2010-11-19 23:26:00

标签: sql sql-server sql-server-2008

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

如何从db中删除所有连接?

4 个答案:

答案 0 :(得分:23)

根据我在single_user模式下的评论,您需要从同一个连接重命名。不要尝试通过对象资源管理器重命名它,因为它会尝试打开一个新连接。以下是这方面的工作......

ALTER DATABASE AdventureWorks SET single_user WITH ROLLBACK IMMEDIATE

ALTER DATABASE AdventureWorks MODIFY NAME = NewAdventureWorks

ALTER DATABASE NewAdventureWorks SET multi_user 

答案 1 :(得分:9)

像这样: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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

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