SHUTDOWN (Transact-SQL)
SQL Server を直ちに停止します。
構文
SHUTDOWN [ WITH NOWAIT ]
引数
WITH NOWAIT
省略可能。各データベースでチェックポイントを実行せずに、SQL Server をシャットダウンします。SQL Server はすべてのユーザー プロセスの停止を試行した後に終了します。サーバーが再起動すると、完了しなかったトランザクションのロールバック操作が行われます。
解説
WITH
NOWAIT オプションを使用しない場合、SHUTDOWN では SQL Server が次のようにシャットダウンされます。
- 固定サーバー ロール sysadmin および serveradmin のメンバを除き、ログインを無効にする。
メモ : 現在のすべてのユーザーの一覧を表示するには、sp_who を実行します。 - 現在実行中の Transact-SQL ステートメントまたはストアド プロシージャが終了するまで待機する。すべてのアクティブなプロセスとロックの一覧を表示するには、それぞれ sp_who および sp_lock を実行します。
- 各データベースにチェックポイントを挿入する。
SHUTDOWN ステートメントを使用すると、固定サーバー ロール sysadmin のメンバが SQL Server を再起動したときに必要となる自動復旧作業を最小限に抑えられます。
後に示すツールや方法を使用しても SQL Server を停止できます。いずれの停止方法でも、すべてのデータベースでチェックポイントが発行されます。コミットされたデータをデータ キャッシュからフラッシュして、サーバーを停止できます。
- SQL Server 構成マネージャを使用する。
- 既定のインスタンスのコマンド プロンプトから net stop mssqlserver を実行する、または、名前付きインスタンスのコマンド プロンプトから **net stop mssql$**instancename を実行する。
- [コントロール パネル] の [サービス] を使用する。
sqlservr.exe をコマンド プロンプトから起動した場合は、Ctrl+C キーを押すと SQL Server がシャットダウンされますが、Ctrl+C キーを押してもチェックポイントは挿入されません。
メモ : |
---|
どの方法で SQL Server を停止しても、SQL Server には SERVICE_CONTROL_STOP メッセージが送信されます。 |
権限
SHUTDOWN 権限は、既定では sysadmin 固定サーバー ロールおよび serveradmin 固定サーバー ロールのメンバに与えられています。この権限を譲渡することはできません。
参照
関連項目
CHECKPOINT (Transact-SQL)
sp_lock (Transact-SQL)
sp_who (Transact-SQL)