SQL Server 2008, как я могу отключить всех от моей БД? - PullRequest
13 голосов
/ 20 ноября 2010

Мне нужно переименовать базу данных, но я не могу, так как другие процессы используют ее.Мне плевать на процесс, и мне нужно его убить.

Как удалить все соединения из БД?

Ответы [ 4 ]

23 голосов
/ 20 ноября 2010

Согласно моему комментарию, один раз в режиме single_user вам нужно сделать переименование из того же соединения.Не пытайтесь переименовать его через Object Explorer, так как он попытается открыть новое соединение.Следующие работы это конец ...

ALTER DATABASE AdventureWorks SET single_user WITH ROLLBACK IMMEDIATE

ALTER DATABASE AdventureWorks MODIFY NAME = NewAdventureWorks

ALTER DATABASE NewAdventureWorks SET multi_user 
9 голосов
/ 20 ноября 2010

Как это: Убить все активные подключения к базе данных

ALTER DATABASE oldNameSET SINGLE_USER WITH ROLLBACK IMMEDIATE

EXEC sp_renamedb 'oldName', 'newName'

ALTER DATABASE newName SET MULTI_USER  --new name of course
2 голосов
/ 20 ноября 2010

Запустите sp_who, затем убейте [pid] для всех в вашей базе данных.

0 голосов
/ 16 апреля 2015

Это прекрасно сработало для меня, чтобы переименовать базу данных и заставить всех отключиться:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...