次の方法で共有


Transact-SQL デバッガー情報

適用対象: SQL Server

デバッガーによって特定の Transact-SQL ステートメントで実行が一時停止されるたびに、さまざまなデバッガー ウィンドウを使用して現在の実行状態を表示できます。

デバッガー ウィンドウ

デバッガー モードでは、デバッガーはクエリ エディター ウィンドウの横のウィンドウを開きます。 デバッガーは選択したウィンドウにその情報を表示します。 それぞれのデバッガー ウィンドウには、ウィンドウに表示される情報のセットを制御するために選択できるタブがあります。 [呼び出し履歴][ブレークポイント][例外設定]、および [出力] タブが 1 つのウィンドウに含まれています。 [ウォッチ 1][ウォッチ 2][ウォッチ 3]、および [ウォッチ 4] タブが 1 つのウィンドウに含まれています。 [スレッド] ウィンドウと [ローカル] ウィンドウが個別に表示されます。

Note

前の説明は、デバッガー ウィンドウの既定の場所に適用されます。 タブは、ドラッグすることでウィンドウ間で移動できます。また、タブのドッキングを解除して新しいウィンドウを作成し、選択したタブを表示できます。

既定では、これらのタブまたはウィンドウの一部がアクティブになりません。 特定のウィンドウを開くには、[デバッグ] メニューの [Windows] を選択し、表示するウィンドウを選択します。

Transact-SQL 式

式は、変数やパラメーターなどの単独のスカラー値に評価される Transact-SQL 句です。 デバッガー ウィンドウでは、式に現在割り当てられているデータ値を最大で 5 つのタブまたはウィンドウ ( [ローカル]、[ウォッチ 1][ウォッチ 2][ウォッチ 3]、および [ウォッチ 4]) に表示できます。

[ローカル] ウィンドウには、Transact-SQL デバッガーの現在のスコープ内のローカル変数についての情報が表示されます。 [ローカル] ウィンドウに表示される式のセットは、一覧の式を追加または削除しない限り変更されません。

4 つの [ウォッチ] ウィンドウに指定できる式は、変数の識別子だけではありません。 単一の値に評価される Transact-SQL 式 (変数に対して数値を加算する式など) や単一の値に評価される SELECT ステートメントを指定することができます。 たとえば、次のようになります。

  • 変数の名前 (@IntegerCounter など)。

  • 変数に対する算術演算 (@IntegerCounter + 1 など)。

  • 2 つの文字変数に対する文字列操作 (@FirstName + @LastName など)。

  • 単一の値を返す SELECT ステートメント (SELECT CharCol FROM MyTable WHERE PrimaryKey = 1)。

4 つの [ウォッチ] ウィンドウには、選択した変数および式に関する情報が表示されます。 [ウォッチ] ウィンドウに表示される式のセットは、一覧の式を追加または削除しない限り変更されません。

式を [ウォッチ] ウィンドウに追加するには、[ウォッチ] ウィンドウで空の行の [名前] 列に式の名前を入力します。 [デバッグ] メニューから [クイック ウォッチ] を選択し、式を入力して、[ウォッチの追加] 選択することもできます。

[ローカル][ウォッチ]、または [クイック ウォッチ] の各ウィンドウで変数にデータ値を設定するには、行を右クリックし、 [値の編集]を選択します。 [ローカル][ウォッチ] 、および [クイック ウォッチ] ダイアログ ボックスの [値] 列では、テキスト、XML、および HTML のデータ ビジュアライザーがサポートされます。 ビジュアライザーは、 [値] 列の右側の虫眼鏡データ ヒントとして表されます。 ビジュアライザーを使用すると、データ型に一致するテキスト、XML、または HTML のデータ値を表示できます (たとえば、XML ファイルをブラウザー ウィンドウに表示できます)。

デバッグ モードでは、識別子の上にマウス ポインターを移動すると、式の名前とその現在の値が クイック ヒント ポップアップに表示されます。 詳細については、「クイック ヒント (IntelliSense)」を参照してください。

ブレークポイント

[ブレークポイント] ウィンドウでは、ブレークポイントを表示および管理できます。 詳細については、「 Transact-SQL コードのステップ実行」を参照してください。

呼び出し履歴

[呼び出し履歴] ウィンドウには、現在の実行場所が表示されます。また、実行が元のエディター ウィンドウから Transact-SQL モジュール (関数、ストアド プロシージャ、またはトリガー) 経由で現在の実行場所まで、どのように渡されたかについての情報も表示されます。 [呼び出し履歴] ウィンドウの各行はスタック フレームと呼ばれ、次のいずれかの項目を表します。

  • 現在の実行場所

  • 1 つのモジュールから別のモジュールへの呼び出し

  • エディター ウィンドウから Transact-SQL モジュールへの呼び出し

スタックの順序は、モジュールが呼び出された順序の逆順になっています。 現在の実行場所はスタックの最上部に表示され、元の呼び出しは最下部に表示されます。 スタック フレームの左余白の黄色の矢印は、デバッガーが実行を一時停止したフレームを表します。

[名前] 列には、次の情報が記録されます。

  • 次のレベルへの呼び出しを行ったコード行を含む呼び出し元のモジュール。

  • スタック上の次のモジュールを呼び出したコード行。

  • パラメーターを受け取るストアド プロシージャまたは関数が呼び出された場合、すべてのパラメーターについて、名前、データ型、および値も表示されます。

[ローカル][ウォッチ]、および [クイック ウォッチ] の各ウィンドウ内の式は、現在のスタック フレームに対して評価されます。 既定では、現在のスタック フレームは、デバッガーが実行を一時停止したスタック内の最上位のフレームです。 別のスタック フレームを現在のフレームとして指定した場合、 [ローカル][ウォッチ]、および [クイック ウォッチ] の各ウィンドウ内の式は、新しいスタック フレームに対して再評価されます。 現在のスタック フレームを変更するには、フレームをダブルクリックするか、またはフレームをクリックし、 [フレームに切り替え] を選択します。 その時点で、 [ローカル][ウォッチ] 、および [クイック ウォッチ] の各ウィンドウ内の式が新しいフレームに対して再評価されます。 現在のスタック フレームがスタック内で最上位のフレームでない場合、現在のスタック フレームは、スタック フレームの左余白の緑色の矢印によって識別されます。

スタック フレームを右クリックし、 [ソース コードへ移動]を選択すると、そのフレームのコードがクエリ エディター ウィンドウに表示されます。 ただし、そのフレームは現在のフレームには設定されず、[ローカル][ウォッチ]、および [クイック ウォッチ] の各ウィンドウの内容も変更されません。

システム情報および Transact-SQL の結果

[出力] ウィンドウには、デバッガーから出力される状態メッセージおよびイベント メッセージが表示されます。 ウィンドウには、デバッガーがいつ他のプロセスにアタッチしたか、デバッガー スレッドがいつ終了したかなどの情報が表示されます。

デバッグ モードのとき、クエリ エディターの [結果] タブと [メッセージ] タブはアクティブ状態で維持されます。 [結果] タブには、デバッグ セッション中に実行された Transact-SQL ステートメントからの結果セットが表示されます。 [メッセージ] タブには、システム メッセージ (たとえば影響を受けた行数) や、PRINT ステートメントおよび RAISERROR ステートメントの出力が表示されます。