適用対象:SQL Server
Transact-SQL デバッガーを使用すると、Transact-SQL コードの実行時の動作を確認してエラーを検出できます。 データベース エンジン クエリ エディター ウィンドウをデバッグ モードに設定した後、特定のコード行で実行を一時停止し、Transact-SQL ステートメントで使用されている (またはステートメントから返される) 情報やデータを調べることができます。
T-SQL デバッグは、SQL Server Data Tools for Visual Studio で使用できます。
Transact-SQL コードをステップ実行する
Transact-SQL デバッガーでは、データベース エンジン クエリ エディター ウィンドウがデバッグ モードのときに Transact-SQL コードを使用して次の操作を行うことができます。
個々の Transact-SQL ステートメントにブレークポイントを設定する。
実行を一時的に停止してデータを調査するには、その位置をブレークポイントで指定します。 デバッガーを起動すると、デバッガーはクエリ エディター ウィンドウ内の最初のコード行で一時停止します。 最初のブレークポイントまで実行するには、[続行] を使用します。 [続行] は、現在一時停止しているウィンドウの場所から次のブレークポイントまで実行するためにも使用できます。 ブレークポイントは編集することができます。実行を一時停止する条件や、[出力] ウィンドウに表示する情報など、その動作を指定できるほか、ブレークポイントの場所を変更することもできます。
次のステートメントにステップ インする。
ステートメントのセット内を 1 つずつ移動して、その動作を確認できます。
ストアド プロシージャまたは関数の呼び出しにステップ インまたはステップ オーバーする。
ストアド プロシージャにエラーがないことがわかっている場合は、ストアド プロシージャにステップ オーバーできます。 プロシージャは完全に実行され、その結果がコードに返されます。
ストアド プロシージャまたは関数をデバッグする場合、モジュールにステップ インできます。 モジュールのソース コードを入力する新しいデータベース エンジン クエリ エディター ウィンドウが開きます。 ウィンドウはデバッグ モードに設定され、実行はモジュールの最初のステートメントで一時停止します。 その後、モジュールのコードに対して、ブレークポイントの設定やコードのステップ実行などの操作を行うことができます。
デバッガーがコードをナビゲートする方法の詳細については、「Transact-SQL コードのステップ実行」を参照してください。
デバッガー情報の表示
デバッガーが特定の Transact-SQL ステートメントで実行を一時停止するたびに、次のデバッガー ウィンドウを使用して現在の実行状態を表示できます。
ローカル と ウォッチ。 これらのウィンドウには、現在割り当てられている Transact-SQL 式が表示されます。 式は、単一のスカラー式に評価される Transact-SQL 句です。 Transact-SQL デバッガーでは、Transact-SQL 変数、パラメーター、または、組み込み関数を参照する、名前が @@ で始まる表示式がサポートされます。 また、これらのウィンドウには、式に現在割り当てられているデータ値も表示されます。
クイック ウォッチ。 このウィンドウには、 Transact-SQL 式の値が表示されます。式を [ウォッチ] ウィンドウに保存することができます。
ブレークポイント。 このウィンドウには、現在設定されているブレークポイントが表示されます。ブレークポイントを管理できます。
コールスタック。 このウィンドウには、現在の実行場所が表示されます。 また、実行が元のクエリ エディター ウィンドウから関数、ストアド プロシージャ、またはトリガー経由で現在の実行場所までどのように渡されたかについての情報も表示されます。
出力。 このウィンドウには、各種のメッセージやプログラム データ (たとえばデバッガーからのシステム メッセージ) が表示されます。
結果 と メッセージ。 [クエリ エディター] ウィンドウのこれらのタブには、以前に実行した Transact-SQL ステートメントの結果が表示されます。
既知の問題と制限事項
T-SQL デバッガーは、SQL Server インスタンスにのみ適用できます。 デバッガーは、Fabric の Azure SQL Database、Azure SQL Managed Instance、または SQL Database で実行されている Transact-SQL コードのデバッグをサポートしていません。
特定の条件下では、SQL スクリプトをステップ実行するときに、T-SQL デバッガーの行の強調表示とブレークポイントが実際の実行ポイントと同期しなくなる可能性があります。 この問題は、スクリプトの上部にあるコメントや、ステートメントの後の空の行など、いくつかのシナリオで発生する可能性があります。
Transact-SQL デバッガーのタスク
| タスクの説明 | [アーティクル] |
|---|---|
| リモート デバッグに必要な構成を Transact-SQL デバッガーに対して行う方法について説明します。 | Transact-SQL デバッガーを実行する前にファイアウォール規則を構成する |
| デバッガーの操作を開始、停止、および制御する方法について説明します。 | Transact-SQL デバッガーを実行する |
| Transact-SQL デバッガーを使用してコードをステップ実行する方法について説明します。 | Transact-SQL コードをステップ実行する |
| Transact-SQL デバッガーを使用してストアド プロシージャ コードをステップ実行する方法について説明します。 | ストアド プロシージャのデバッグ |
| デバッガーを使用して Transact-SQL データ (パラメーター、変数など) およびシステム情報を表示する方法について説明します。 | Transact-SQL デバッガー情報 |