213

SINGLE_USERモードで復元されたデータベースをに設定するのに助けが必要MULTI_USERです。走るたびに

ALTER DATABASE BARDABARD
SET MULTI_USER;
GO

このエラーが発生します:

現在、データベース「BARDABARD」の状態またはオプションを変更することはできません。

データベースはシングルユーザーモードであり、ユーザーは現在データベースに接続しています。

別のモードに設定するには非モードである必要がありますが、SINGLE_USERモードである間はデータベースを別のモードに設定できませんSINGLE_USER

4

20 に答える 20

85

変更をすぐにロールバックするオプションを追加できます。

ALTER DATABASE BARDABARD
SET MULTI_USER
WITH ROLLBACK IMMEDIATE
GO
于 2014-07-11T20:48:56.653 に答える
41

SQL サーバー 2012:

を右クリックし、DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user[OK] をクリックします。

出来上がり!

于 2014-04-09T12:41:21.170 に答える
23

私は同じ問題を抱えていましたが、次の手順で修正しました-参照: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html

use master
GO

select 
    d.name, 
    d.dbid, 
    spid, 
    login_time, 
    nt_domain, 
    nt_username, 
    loginame
from sysprocesses p 
    inner join sysdatabases d 
        on p.dbid = d.dbid
where d.name = 'dbname'
GO

kill 56 --=> kill the number in spid field
GO

exec sp_dboption 'dbname', 'single user', 'FALSE'
GO
于 2014-03-31T03:09:13.090 に答える
16

これは私にとってはうまくいきました。

ステップ 1. データベース エンジンを右クリックし、アクティビティ モニターをクリックして、接続しているプロセスを確認します。その特定のユーザーを強制終了し、クエリをすぐに実行します。

ステップ2。

USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO  

データベースをリフレッシュします。

于 2016-04-05T09:33:48.383 に答える
7

SQL Management Studio を使用する代わりに、サーバーに直接ログオンすることをお勧めします。

ログインするアカウントが、MULTI_USER に設定するデータベースの dbowner であることを確認してください。可能であれば、sa としてログインします (SQL サーバー認証を使用)

データベースが IIS によって使用されている場合は、それを使用する Web サイトとアプリケーション プールを停止します。これは、接続されているプロセスであり、MULTI_USER への設定をブロックしている可能性があります。

USE MASTER
GO

-- see if any process are using *your* database specifically

SELECT * from master.sys.sysprocesses
WHERE spid > 50 -- process spids < 50 are reserved by SQL - we're not interested in these
AND dbid=DB_ID ('YourDbNameHere')

-- if so, kill the process:

KILL n -- where 'n' is the 'spid' of the connected process as identified using query above

-- setting database to read only isn't generally necessary, but may help:

ALTER DATABASE YourDbNameHere
SET READ_ONLY;
GO

-- should work now:

ALTER DATABASE Appswiz SET MULTI_USER WITH ROLLBACK IMMEDIATE

それでも問題が解決しない場合は、こちらを参照してください。

http://www.sqlservercentral.com/blogs/pearlknows/2014/04/07/help-im-stuck-in-single-user-mode-and-can-t-get-out/

最後の代替手段として- 上記のすべてを試してもどうにもならなくなった場合は、SQL サーバー インスタンスを停止してから再起動してみてください。

于 2016-12-02T03:52:44.983 に答える
1
  1. すべてを試してみましたがうまくいきませんでした
  2. すべての接続を切断するため、そのサーバーにリモートでログインします
  3. 以下のコードを複数回実行して、完了を返し、「killing process」テストがなくなるまで実行します。
  4. 以下のコードの下のコードを使用して、再度有効にします

master GO を使用 @sql を varchar(20)、@spid を int として宣言

master..sysprocesses から @spid = min(spid) を選択します。ここで、dbid = db_id('DB_NAME') および spid != @@spid

while (@spid is not null) begin print 'Killing process ' + cast(@spid as varchar) + ' ...' set @sql = 'kill ' + cast(@spid as varchar) exec (@sql)

select 
    @spid = min(spid)  
from 
    master..sysprocesses  
where 
    dbid = db_id('DB_NAME') 
    and spid != @@spid end

それからそれを生き返らせるために

ALTER DATABASE DB_NAME SET MULTI_USER; 行く

于 2014-12-10T05:45:04.903 に答える
0

SQL Server 2014 を 3 回以上使用して、何も変更せずにデータベースをシングル ユーザー モードに変換しました。データベースの作成中に何らかの形で発生したに違いありません。データベースがシングルユーザーモードであり、接続できないというエラーを常に受け​​取ったため、上記の方法はすべて機能しませんでした。

私がやるべきことは、SQL Server Windows サービスを再起動することだけでした。これにより、データベースに接続して必要な変更を加えたり、データベースを削除して最初からやり直したりすることができました。

于 2016-10-03T17:16:19.593 に答える
0

データベースのプロパティに移動して 、SINGLE USERモードをMULTI USERに変更するだけです

ここに画像の説明を入力

注:うまくいかない場合は、Dbのバックアップと復元を再度行い、上記の方法を再度実行してください

* シングル = SINGLE_USER

複数=MULTI_USER

制限あり=RESTRICTED_USER

于 2016-09-26T09:31:00.870 に答える
0

私は問題を簡単に解決しました

  1. データベース名を右クリックして名前を変更します

  2. 変更後、データベース名を右クリック --> プロパティ --> オプション --> スクロールの一番下に移動 RestrictAccess (SINGLE_USER から MULTI_USER)

  3. ここでも、データベースの名前を古い名前に変更できます。

于 2015-07-02T02:20:57.590 に答える