私はしばらくの間解決策を探して、ついに以下の解決策を思いつきました、
SSMSは一般的に、データベースの背後でいくつかの接続を使用します。
アクセスモードを変更する前に、これらの接続を強制終了する必要があります。(以下のコードテンプレートで、EXEC(@kill)を使用して実行しました。)
そして、
次のSQLを実行して、データベースをMULTI_USERモードに設定します。
USE master
GO
DECLARE @kill varchar(max) = '';
SELECT @kill = @kill + 'KILL ' + CONVERT(varchar(10), spid) + '; '
FROM master..sysprocesses
WHERE spid > 50 AND dbid = DB_ID('<Your_DB_Name>')
EXEC(@kill);
GO
SET DEADLOCK_PRIORITY HIGH
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH NO_WAIT
ALTER DATABASE [<Your_DB_Name>] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
シングルユーザーモードに戻すには、次のコマンドを使用できます。
ALTER DATABASE [<Your_DB_Name>] SET SINGLE_USER
これはうまくいくはずです。ハッピーコーディング!!
ありがとう!!
master)が選択されていても、クエリウィンドウがデータベースにアタッチされている可能性があります。それは、あなたが頭痛近い与え続けた場合は、すべての他のクエリウィンドウを、とのようないくつかの無実のシステムデータベースを選択するmasterか、tempdbあなたが残っている一つのウィンドウのドロップダウンに。