1. ホーム
  2. sql

[解決済み] データベースをロックできなかったため、ALTER DATABASE に失敗しました。

2022-07-07 22:39:37

質問

いくつかのプロセスが動作していないため、データベースを再起動する必要があります。私の計画は、それをオフラインにして、再びオンラインにすることです。

私はこれを Sql Server Management Studio 2008 で行おうとしています。

use master;
go
alter database qcvalues
set single_user
with rollback immediate;
alter database qcvalues
set multi_user;
go

こんなエラーが出ます。

Msg 5061, Level 16, State 1, Line 1
ALTER DATABASE failed because a lock could not be placed on database 'qcvalues'. Try again later.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
Msg 5061, Level 16, State 1, Line 4
ALTER DATABASE failed because a lock could not be placed on database 'qcvalues'. Try again later.
Msg 5069, Level 16, State 1, Line 4
ALTER DATABASE statement failed.

私は何を間違えているのでしょうか?

どうすればいいのでしょうか?

エラーが発生した後

EXEC sp_who2

リストの中からデータベースを探します。 接続が終了していない可能性があります。データベースへの接続が見つかった場合は、以下のコマンドを実行してください。

KILL <SPID>

ここで <SPID> はデータベースに接続されているセッションの SPID です。

データベースへの接続がすべて削除された後に、スクリプトを試してみてください。

残念ながら、この問題が発生する理由はわかりませんが、この問題が他の場所で発生したことを示すリンクを紹介します。

http://www.geakeit.co.uk/2010/12/11/sql-take-offline-fails-alter-database-failed-because-a-lock-could-not-error-5061/