Мне нужно переименовать базу данных, но я не могу, поскольку другие процессы используют ее. Меня не волнует этот процесс, и мне нужно его убить.
Как удалить все соединения из db?
Ответ 1
В соответствии с моим комментарием в режиме 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
ALTER DATABASE oldNameSET SINGLE_USER WITH ROLLBACK IMMEDIATE
EXEC sp_renamedb 'oldName', 'newName'
ALTER DATABASE newName SET MULTI_USER --new name of course
Ответ 3
Запустите sp_who, а затем kill [pid] для всех в вашей базе данных.
Ответ 4
Это сработало для меня, чтобы переименовать базу данных и принудительно отключить всех:
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