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