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

SQL Server говорит, что база данных используется, но она не

SQL Server продолжает сообщать мне, что база данных используется, когда я пытаюсь ее удалить или восстановить, но когда я запускаю этот запрос метаданных:

select * from sys.sysprocesses 
where dbid 
  in (select database_id from sys.databases where name = 'NameOfDb')

Он ничего не возвращает.

Иногда он возвращает 1 процесс, который является типом ожидания CHECKPOINT_QUEUE. Если я попытаюсь убить этот процесс, он не позволит мне (не может убить не-пользовательский процесс).

Кто-нибудь знает, что неправильно?

4b9b3361

Ответ 1

Там может быть много вещей, блокирующих вашу базу данных. Например, если у вас есть окно запроса, открытое в этой базе данных, оно будет заблокировано вами. Не считая внешних доступов, как веб-приложение в IIS.

Если вы действительно хотите сбросить его, установите флажок закрыть существующие подключения или попробуйте вручную остановить службу SQL Server.

Ответ 2

Мне нравится это script. Не боритесь с убийством.

use master

alter database xyz set single_user with rollback immediate

restore database xyz ...

alter database xyz set multi_user

Ответ 3

У меня была такая же проблема при попытке восстановить базу данных из резервной копии. Решение для меня состояло в том, чтобы убедиться, что я проверил "Переопределить существующую базу данных (WITH REPLACE)" и "Закрыть существующие подключения к базе данных назначения" на странице "Параметры" ПЕРЕД выполнением восстановления. Вот скриншот ниже.

введите описание изображения здесь