Причина этой проблемы очевидна (соединения с базой данных в настоящее время открыты / активны), но используйте следующее (Google также, чтобы вы понимали это), и все будет хорошо:
Alter Database YOURDB
SET SINGLE_USER With ROLLBACK IMMEDIATE
GO
Очевидно, замените YOURDDB
именем вашей базы данных и запустите его для основной БД.
Да, и просто, если вы застряли в однопользовательском режиме, это отменит это:
Alter Database YOURDB
SET MULTI_USER With ROLLBACK IMMEDIATE
GO
Надеюсь, это поможет.
EDIT:
Вы также можете следовать этому , чтобы увидеть, откуда происходят соединения, и другую информацию:
Я проверял это, имея услуги
работает, что бы подключиться к
база данных. Я обнаружил, что вы должны были установить
Однопользовательский режим, затем запустите sp_who2 для
увидеть, где было одно соединение
исходя из, и обратите внимание на SPID. Вы
может запустить команду kill для этого SPID
и восстановление в том же
сделка, и она должна пройти.
Вот последовательность, которую я использовал:
ИСПОЛЬЗОВАТЬ MASTER ALTER DATABASE DATABASENAME
SET SINGLE_USER с ROLLBACK
НЕМЕДЛЕННЫЙ GO
-Это будет сделано, так что только одно соединение с базой данных может быть
сделал.
-Спустите следующую команду, чтобы увидеть, где какие-либо повторяющиеся подключения к
база данных поступает из.
EXEC SP_WHO2
-Проверьте этот список, просматривая столбец DBName. Если база данных
в списке проверьте имя программы и
HostName столбец, чтобы увидеть, кто
пытаясь подключиться.
-Если это не служба или другое приложение, которое будет автоматически
восстановить соединение, которое можно отключить, обратите внимание
число в столбце SPID, чтобы убить
соединение, и сразу же начать
резервная копия. Заменить SPID ниже на
просто номер.
БАЗА ДАННЫХ УБИЙСТВА SPID
DATABASENAME FROM DISK =
'X: \ PATHTO \ BACKUP.BAK' GO
-Если это успешно завершено, мы можем установить вновь восстановленную базу данных
вернуться в многопользовательский режим.
ALTER DATABASE DATABASENAME SET
MULTI_USER с опцией ROLLBACK GO