SQL Serverは、データベースを削除または復元しようとしたときにデータベースが使用中であることを通知し続けますが、次のメタデータクエリを実行すると、
select * from sys.sysprocesses
where dbid
in (select database_id from sys.databases where name = 'NameOfDb')
何も返しません。
CHECKPOINT_QUEUE待機タイプである1つのプロセスを返す場合があります。そのプロセスを強制終了しようとしても、許可されません(ユーザー以外のプロセスを強制終了することはできません)。
誰もが何が悪いのか考えていますか?
データベースをブロックするものはたくさんあります。たとえば、そのデータベースでクエリウィンドウを開いている場合、そのウィンドウはロックされます。 IIS上のWebアプリケーションのような外部アクセスをカウントしません。
強制的にドロップしたい場合は、既存の接続を閉じるオプションを確認するか、SQL Serverのサービスを手動で停止してみてください。
私はこのスクリプトが好きです。殺害に苦労しないでください。
use master
alter database xyz set single_user with rollback immediate
restore database xyz ...
alter database xyz set multi_user