Transact-SQL デバッガーでは、SQL ストアド プロシージャの SQL 呼び出し履歴、ローカル変数、およびパラメーターが表示され、ストアド プロシージャをインタラクティブにデバッグできます。 Transact-SQL デバッガーでは、ローカル変数とパラメーターの表示と変更、グローバル変数の表示がサポートされています。 また、Transact-SQL スクリプトのデバッグ時にブレークポイントを制御および管理する機能も提供します。
この例では、Transact-SQL ストアド プロシージャを作成し、ステップ インでデバッグする方法を示します。
Note
Transact-SQL デバッグは、Azure SQL Database や Azure SQL Managed Instance では使用できません。
ストアド プロシージャをデバッグする
データベース エンジン クエリ エディター ウィンドウで、SQL Server データベース エンジンのインスタンスに接続します。 ストアド プロシージャの例を作成できるデータベースを選択します。
クエリ エディターで、次のコードを貼り付けます。
CREATE TABLE [dbo].[Products] ([Id] INT, [Name] NVARCHAR(128)) CREATE PROCEDURE [dbo].[AddProduct] @id INT, @name NVARCHAR(128) AS BEGIN INSERT INTO [dbo].[Products] ([Id], [Name]) VALUES (@id, @name) SELECT [Name] FROM [dbo].[Products] WHERE [Id] = @id DECLARE @nextid INT SET @nextid = @id + 1 INSERT INTO [dbo].[Products] ([Id], [Name]) VALUES (@id, @name) SELECT [Name] FROM [dbo].[Products] WHERE [Id] = @nextid ENDF5 キーを押して、Transact-SQL コードを実行します。
SQL Server オブジェクト エクスプローラーで、同じデータベース エンジンを右クリックし、[ 新しいクエリ...] を選択します。ストアド プロシージャを作成したのと同じデータベースに接続していることを確認します。
次のコードをクエリ ウィンドウに貼り付けます。
EXECUTE [dbo].[AddProduct] 50, N'T-SQL Debugger Test'; GO左ウィンドウの余白を選択して、
EXECステートメントにブレークポイントを追加します。Transact-SQL エディターツール バーの緑色の矢印ボタンのドロップダウン リスト矢印を押し、[ デバッガーで実行 ] を選択して、デバッグを有効にしてクエリを実行します。
または、 SQL メニューからデバッグを開始できます。 SQL>デバッガーで実行を選択します。
[ローカル] ウィンドウが開いていることを確認します。 そうでない場合は、[ デバッグ ] メニューを選択し、[ Windows ] と [ ローカル] を選択します。
F11 キーを押してクエリにステップ インします。 ストア プロシージャのパラメーターとそれぞれの値が [ ローカル ] ウィンドウに表示されます。 または、
@name句内のINSERTパラメーターの上にマウス ポインターを移動すると、T-SQL デバッガー テストという値が割り当てられていることがわかります。テキスト ボックスの [T-SQL デバッガー テスト] を選択します。 「Validate Change」と入力して Enter キーを押すことにより、デバッグ中の
name変数の値を変更します。 [ローカル] ウィンドウで値を変更することもできます。 パラメーターの値は赤で、変更を示します。F10 キーを押して、残りのコードをステップ オーバーします。
デバッグが完了したら、
Productテーブルにクエリを実行して内容を表示します。SELECT * FROM [dbo].[Products]; GO結果ウィンドウで、テーブルに新しい行が存在することを確認します。