Microsoft SQL Server: База данных уже открыта и одновременно к ней может обращаться только один пользователь
- Recluse
- 15.10.2023
- 2 214
- 0
- 6
- 6
- 0
- Содержание статьи
Описание проблемы
При переводе базы данных в режим одного пользователя (Single User mode) можно столкнуться с тем, что после перевода базы в данный режим, доступ к ней оказывается потерян, со следующим сообщением:
База данных уже открыта, и одновременно к ней может обращаться только один пользователь.
Связано это с тем, что в режиме одного пользователя, существует подключение, которое блокирует ваши попытки к ней подключиться. Ниже мы разберемся с тем, как выявить это подключение, завершить его и при необходимости перевести базу в многопользовательский режим (Multi User mode).
Исправление проблемы
Решить данную проблему можно следующим способом.
- В обозревателе объектов SSMS выберем системную базу данных master, и нажмем на ней правой кнопкой мыши, после чего выберем в контекстном меню пункт "Создать запрос".
- В тексте запроса напишем
sp_who2
, и нажмем на кнопку "Выполнить". - В результатах поиска ищем по столбцу DBName нужную базу данных, и смотрим, кто её использует. Найдя нужную запись, запоминаем значение столбца SPID.
- Вновь выбираем системную базу данных master, нажмем на ней правой кнопкой мыши, и выбираем в контекстном меню пункт "Создать запрос".
- Напишем и выполним запрос
kill [НОМЕР SPID]
, используя ранее полученное значение SPID. - Открываем новое окно с запросом, и выполняем там необходимый запрос. Или, если вам нужно вернуть базу в многопользовательский режим, то выполняем следующую команду:
USE MASTER; ALTER DATABASE [ИМЯ БАЗЫ ДАННЫХ] SET MULTI_USER GO
Не зависимо от вашего запроса, смотрим на его результат - если вновь появится ошибка о том, что база данных уже кем-то используется, вновь возвращаемся ко второму шагу, смотрим кем используется нужная база данных и завершаем это соединение, после чего вновь пытаемся выполнить свой запрос.
Добавить комментарий