Microsoft SQL Server Management Studio можно столкнуться с ситуацией, когда процедура перевода базы данных в Offline затягивается на очень длительное время…
Решение:
правой кнопкой по бд - Создать запрос(Query):
Цитата |
---|
USE master GO ALTER DATABASE [Имя базы данных] SET OFFLINE WITH ROLLBACK IMMEDIATE GO |
...инструкции WITH ROLLBACK IMMEDIATE, которая должна закрыть все активные соединения …но по факту может быть: ALTER DATABASE failed because a lock could not be placed on databas
И чтобы понять кто занимает бд (информацию об активных сессиях )
Цитата |
---|
USE master GO SELECT * FROM sys.sysprocesses WHERE dbid = DB_ID('Имя базы данных') GO |
Из полученного вывода станет понятно, – какой именно пользователь и из какого приложения “держит” нашу базу данных. Одним из интересующих нас показателей будет идентификатор соединения — spid
image
Помимо представленного примера информацию о всех активных соединениях к серверу БД можно получить с помощью хранимых процедур sp_who или sp_who2:
Выяснив идентификатор соединения можно его “прибить” командой:
После сброса активных сессий интересующая нас база данных должна успешно завершить переход состояние Offline.