Transact-SQL デバッガーの実行
適用対象: SQL Server
Transact-SQL デバッガーは、データベース エンジン クエリ エディター ウィンドウを開いた後に起動できます。 デバッガーを停止するまで、デバッガーの実行方法をカスタマイズし、デバッグ モードで Transact-SQL コードを実行するオプションを設定できます。
デバッガーの起動と停止
Transact-SQL デバッガーを起動するための要件は次のとおりです。
データベース エンジン クエリ エディターが別のコンピュータのデータベース エンジンのインスタンスに接続されている場合、デバッガーをリモート デバッグ用に構成する必要があります。 詳細については、「Transact-SQL デバッガーを実行する前にファイアウォール規則を設定する」を参照してください。
データベース エンジン クエリ エディター ウィンドウは、sysadmin 固定サーバー ロールのメンバーである Windows 認証ログインまたは SQL Server 認証ログインを使って接続されている必要があります。
データベース エンジン クエリ エディター ウィンドウが、SQL Server データベース エンジンのインスタンスに接続されている必要があります。 クエリ エディター ウィンドウがシングル ユーザー モードのインスタンスに接続されているときは、デバッガーを実行できません。
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 + |
[ウォッチ 2] ウィンドウを表示します。 |
[ウィンドウ]/[ウォッチ]/[ウォッチ 3] | 使用不可 | [ブレークポイント]/[ウォッチ]/[ウォッチ 3] | Ctrl + |
[ウォッチ 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 | すべてのブレークポイントを削除します。 |
[すべてのブレークポイントを無効にする] | 使用不可 | 使用できません | 使用不可 | すべてのブレークポイントを無効にします。 |
使用不可 | [ウォッチ式の追加] | 使用できません | 使用できません | 選択されている式を [ウォッチ] ウィンドウに追加します。 |