Transact-SQL デバッガーの実行

適用対象:SQL Server

Transact-SQL デバッガーは、データベース エンジン クエリ エディター ウィンドウを開いた後に起動できます。 その後は、デバッガーを停止するまで、Transact-SQL コードをデバッグ モードで実行できます。 オプションを設定して、デバッガーの実行方法をカスタマイズできます。

この機能は、SSMS バージョン 17.9.1 以前で動作します。

デバッガーの起動と停止

Transact-SQL デバッガーを起動するための要件は次のとおりです。

  • データベース エンジン クエリ エディターが別のコンピューターのデータベース エンジンのインスタンスに接続されている場合、デバッガーをリモート デバッグ用に構成する必要があります。 詳細については、「Transact-SQL デバッガーを実行する前にファイアウォール規則を設定する」を参照してください。

  • SQL Server Management Studio が、sysadmin 固定サーバー ロールのメンバーである Windows アカウントで実行されている必要があります。

  • データベース エンジン クエリ エディター ウィンドウが、sysadmin 固定サーバー ロールのメンバーである Windows 認証または SQL Server 認証ログインを使用して接続されている必要があります。

  • データベース エンジン クエリ エディター ウィンドウが、 データベース エンジン Service Pack 2 (SP2) 以降の SQL Server 2005 (9.x) のインスタンスに接続されている必要があります。 クエリ エディター ウィンドウがシングル ユーザー モードのインスタンスに接続されているときは、デバッガーを実行できません。

Transact-SQL コードのデバッグは、次の理由により、実稼働サーバーではなく、テスト サーバーで行うことをお勧めします。

  • デバッグは高度な権限を必要とする操作です。 このため、SQL Server でデバッグを行うことができるのは、sysadmin 固定サーバー ロールのメンバーのみです。

  • いくつかの Transact-SQL ステートメントの処理を調査しているときに、デバッグ セッションが長時間に及ぶことがあります。 セッションによって取得されたロック (たとえば更新ロック) が、セッションが終了するかトランザクションがコミットまたはロールバックされるまで、長時間保持される場合があります。

Transact-SQL デバッガーを起動すると、クエリ エディター ウィンドウがデバッグ モードになります。 クエリ エディター ウィンドウがデバッグ モードになると、デバッガーは最初のコード行で一時停止します。 この段階で、コードをステップ実行することも、特定の Transact-SQL ステートメントで実行を一時停止することもできます。デバッガー ウィンドウを使用して現在の実行状態を表示することもできます。 デバッガーは、 [クエリ] ツール バーの [デバッグ] ボタンをクリックするか、または [デバッグ] メニューの [デバッグ開始] をクリックすることで開始できます。

クエリ エディター ウィンドウは、クエリ エディター ウィンドウ内の最後のステートメントが完了するか、またはデバッグ モードを自分で終了するまで、デバッグ モードに保たれます。 デバッグ モードとステートメントの実行を停止するには、次のいずれかの操作を行います。

  • [デバッグ] メニューの [デバッグの停止] をクリックします。

  • [デバッグ] ツール バーの [デバッグの停止] ボタンをクリックする。

  • [クエリ] メニューの [クエリ実行のキャンセル] をクリックする。

  • [クエリ] ツール バーの [クエリ実行のキャンセル] ボタンをクリックする。

また、[デバッグ] メニューの [すべてデタッチ] をクリックすると、デバッグ モードを停止して、残りの Transact-SQL ステートメントの実行を完了させることができます。

デバッガーの制御

次のメニュー コマンド、ツールバー、およびショートカットを使用して、Transact-SQL デバッガーの動作を制御できます。

  • [デバッグ] メニューおよび [デバッグ] ツール バー。 [デバッグ] メニューと [デバッグ] ツール バーは、開いているクエリ エディター ウィンドウにフォーカスが設定されるまで、どちらも非アクティブ状態です。 現在のプロジェクトが閉じられるまで、アクティブ状態に保たれます。

  • デバッガーのキーボード ショートカット。

  • クエリ エディターのショートカット メニュー。 ショートカット メニューは、クエリ エディター ウィンドウ内の行を右クリックすると表示されます。 クエリ エディター ウィンドウがデバッグ モードのとき、ショートカット メニューには、選択された行または文字列に適用できるデバッガー コマンドが表示されます。

  • デバッガーによって開かれたウィンドウ (たとえば [ウォッチ] ウィンドウや [ブレークポイント] ウィンドウ) のメニュー項目およびコンテキスト コマンド。

デバッガーのメニュー コマンド、ツール バー ボタン、およびキーボード ショートカットを次の表に示します。

[デバッグ] メニューのコマンド エディターのショートカット コマンド ツール バー ボタン キーボード ショートカット アクション
[ウィンドウ]/[ブレークポイント] 使用不可 [ブレークポイント] Ctrl + Alt + B [ブレークポイント] ウィンドウを表示します。このウィンドウでは、ブレークポイントの表示と管理を行うことができます。
[ウィンドウ]/[ウォッチ]/[ウォッチ 1] 使用不可 [ブレークポイント]/[ウォッチ]/[ウォッチ 1] Ctrl + Alt + W、1 [ウォッチ 1] ウィンドウを表示します。
[ウィンドウ]/[ウォッチ]/[ウォッチ 2] 使用不可 [ブレークポイント]/[ウォッチ]/[ウォッチ 2] Ctrl + Alt + W2 [ウォッチ 2] ウィンドウを表示します。
[ウィンドウ]/[ウォッチ]/[ウォッチ 3] 使用不可 [ブレークポイント]/[ウォッチ]/[ウォッチ 3] Ctrl + Alt + W3 [ウォッチ 3] ウィンドウを表示します。
[ウィンドウ]/[ウォッチ]/[ウォッチ 4] 使用不可 [ブレークポイント]/[ウォッチ]/[ウォッチ 4] Ctrl + Alt + W、4 [ウォッチ 4] ウィンドウを表示します。
[ウィンドウ]/[ローカル] 使用不可 [ブレークポイント]/[ローカル] Ctrl + Alt + V、L [ローカル] ウィンドウを表示します。
[ウィンドウ]/[呼び出し履歴] 使用不可 [ブレークポイント]/[呼び出し履歴] Ctrl + Alt + C [呼び出し履歴] ウィンドウを表示します。
[ウィンドウ]/[スレッド] 使用不可 [ブレークポイント]/[スレッド] Ctrl + Alt + H [スレッド] ウィンドウを表示します。
続行 使用不可 続行 Alt + F5 次のブレークポイントまで実行する。 [続行] は、デバッグ モードのクエリ エディター ウィンドウにフォーカスを移さないとアクティブになりません。
[デバッグ] 使用不可 [デバッグ] Alt + F5 クエリ エディター ウィンドウをデバッグ モードにし、最初のブレークポイントまで実行します。 デバッグ モードのクエリ エディター ウィンドウにフォーカスを移した場合、 [デバッグ開始][続行] に切り替わります。
[すべて中断] 使用不可 [すべて中断] Ctrl + Alt + Break この機能は、Transact-SQL デバッガーでは使用できません。
デバッグの停止 使用不可 デバッグの停止 Shift + F5 クエリ エディター ウィンドウをデバッグ モードから通常モードに切り替えます。
メニューの 使用不可 使用できません 使用できません デバッグ モードを終了しますが、クエリ エディター ウィンドウ内の残りのステートメントを実行します。
ステップ イン 使用不可 ステップ イン F11 次のステートメントを実行します。次のステートメントがストアド プロシージャ、トリガー、または関数を実行する場合は、新しいクエリ エディター ウィンドウをデバッグ モードで開きます。
ステップ オーバー 使用不可 ステップ オーバー F10 関数、ストアド プロシージャ、またはトリガーがデバッグされない点を除き、 [ステップ イン] と同じです。
ステップ アウト 使用不可 ステップ アウト SHIFT + F11 ブレークポイントで一時停止することなく、トリガー、関数、またはストアド プロシージャ内の残りのコードを実行します。 モジュールを呼び出したコードに制御が返されると、通常のデバッグ モードが再開されます。
使用不可 [カーソルまで実行] 使用不可 Ctrl + F10 ブレークポイントで停止することなく、前回の停止位置から現在のカーソル位置までのすべてのコードを実行します。
クイック ウォッチ クイック ウォッチ 使用不可 Ctrl + Alt + Q [クイック ウォッチ] ウィンドウを表示します。
ブレークポイントの設定/解除 [ブレークポイント]/[ブレークポイントの挿入] 使用不可 F9 現在の、または選択されている Transact-SQL ステートメントにブレークポイントを配置します。
使用不可 [ブレークポイント]/[ブレークポイントの削除] 使用できません 使用不可 選択されている行からブレークポイントを削除します。
使用不可 [ブレークポイント]/[ブレークポイントの無効化] 使用できません 使用できません 選択されている行のブレークポイントを無効にします。 ブレークポイントはコード行に設定されたままですが、再び有効にするまで実行は停止されません。
使用不可 [ブレークポイント]/[ブレークポイントの有効化] 使用できません 使用できません 選択されている行のブレークポイントを有効にします。
[すべてのブレークポイントの削除] 使用できません 使用できません CTRL + SHIFT + F9 すべてのブレークポイントを削除します。
[すべてのブレークポイントを無効にする] 使用不可 使用できません 使用不可 すべてのブレークポイントを無効にします。
使用不可 [ウォッチ式の追加] 使用できません 使用できません 選択されている式を [ウォッチ] ウィンドウに追加します。

参照