Подтвердить что ты не робот

SQL Server 2008 R2 застрял в однопользовательском режиме

Выполняя развертывание БД (из проекта базы данных VS SQL Server) в локальной базе данных, которая не удалась, база данных осталась в состоянии, когда он имеет режим одиночного пользователя (развертывание выполняется как однопользовательский режим),

Когда я подключаюсь к нему из SSMS и пробую что-то вроде следующего:

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO

Я получаю сообщение об ошибке:

В настоящее время невозможно изменить состояние или параметры базы данных "MyDatabase". База данных находится в однопользовательском режиме, и пользователь в настоящее время подключен к ней.

Я пробовал использовать базу данных в автономном режиме, и SSMS говорит мне, что она преуспевает, но, похоже, она ничего не делает. До сих пор мне удалось обойти это, сбросив и воссоздав базу данных (что вроде хорошо, потому что это только локальная тестовая база данных). Тем не менее, я хотел бы иметь возможность reset статуса.

Как я могу убедить SQL Server взять эту базу данных из однопользовательского режима?

4b9b3361

Ответ 1

В первом запуске следующий запрос в основной базе данных

exec sp_who

Если вы не можете найти преступника, попробуйте

SELECT request_session_id FROM sys.dm_tran_locks 
WHERE resource_database_id = DB_ID('YourDatabase')

Затем уничтожьте весь процесс, который использует вашу базу данных, со следующим запросом:

KILL spid

Затем запустите следующий запрос:

USE Master
ALTER DATABASE YourDatabase SET MULTI_USER

Ответ 2

Это ответ был здесь, код:

use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

--do you stuff here 

ALTER DATABASE YourDatabase SET MULTI_USER

Ответ 4

Попробуйте выполнить следующие команды

Сначала запустите эти три команды

USE [master] 
SET DEADLOCK_PRIORITY HIGH
exec sp_dboption MyDBName, 'single user', 'FALSE';

Второй запуск этих двух команд

ALTER DATABASE MyDBName SET MULTI_USER WITH NO_WAIT
ALTER DATABASE MyDBName SET MULTI_USER WITH ROLLBACK IMMEDIATE