我需要重命名数据库,但我不能,因为其他进程正在使用它。我不关心这个过程,我需要杀掉它。
如何从db中删除所有连接?
答案 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