47

失敗したローカル データベースで (VS SQL Server データベース プロジェクトから) DB デプロイを実行すると、データベースはシングル ユーザー モードのままの状態のままになります (デプロイはシングル ユーザー モードとして実行されます)。

SSMS から接続して、次のようなことを試してみます。

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO

エラーが発生します:

現時点では、データベース 'MyDatabase' の状態またはオプションを変更できません。データベースはシングル ユーザー モードで、ユーザーが現在データベースに接続しています。

データベースをオフラインにしてみましたが、SSMS は成功したと言っていますが、実際には何もしていないようです。これまでのところ、データベースを削除して再作成することでしか、これを回避できませんでした (ローカルのテスト データベースにすぎないため、これは問題ありません)。ただし、ステータスをリセットできるようにしたいです。

このデータベースをシングル ユーザー モードから外すように SQL Server を説得するにはどうすればよいですか?

4

5 に答える 5

159

master データベースでのクエリに続く最初の実行時

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
于 2014-07-07T10:55:51.607 に答える
1

これはここで回答されました。コードは次のとおりです。

use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

--do you stuff here 

ALTER DATABASE YourDatabase SET MULTI_USER
于 2014-07-07T10:47:20.687 に答える
0

DAC (専用管理者接続)を使用します。最初に有効にしたことを確認してください 管理者のSSMSタイプで:マスターに接続した後のサーバー名 ALTER DATABASE SET MULTI_USER

于 2014-07-07T10:48:24.370 に答える