SQL Serverでデーターがロックされてしまった場合に,ロックしているプロセスを確認したりロックを強制的に解除したりする方法.
1. SQL Server Management Studioを起動
2. 利用状況モニタを表示
[管理]→[利用状況モニタ]→右クリックでプロセスの表示
3. [プロセス情報]のブロッキング,ブロック元列を参考にロックしているプロセスIDを探す.
行を右クリック→[詳細]で実行中のSQL文が表示されるのでこれも参考になる.
4. ロックしているプロセスIDが見つかったら,その行を右クリック→[強制終了]
【注意】
利用状況モニタの情報は,「更新」を押さないと最新の情報にならない.
※2009.12.16追記:ロックしているだけではダメで,ロックによって他のクエリー等がブロックされている状態にならなければブロッキングはカウントされない.そしてその状態の時に「更新」を押す必要がある.
・Management Studioが使えない場合
ストアドsp_whoを実行.
blk列にロックしているプロセスIDが表示される.
コマンドプロンプトから, Kill プロセスID
【注意】
サーバー上で管理者権限でおこなうこと.
※2010.1.22追記:SQL Server Management Studioを使う場合でもプロセスの強制終了は、サーバー上の管理者権限でSQL Server Management Studioを使う必要がある。

