ストアド プロシージャをデバッグする
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].[Product] ([Id] INT, [Name] NVARCHAR(128)) CREATE PROCEDURE [dbo].[AddProduct] @id INT, @name NVARCHAR(128) AS BEGIN INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @id DECLARE @nextid INT SET @nextid = @id + 1 INSERT INTO [dbo].[Product] ([Id], [Name]) VALUES (@id, @name) SELECT [Name] FROM [dbo].[Product] WHERE [Id] = @nextid END
F5 キーを押して Transact-SQL コードを実行します。
SQL Server オブジェクト エクスプローラーで、同じデータベース エンジンを右クリックし、[新しいクエリ...]選択します。ストアド プロシージャを作成したのと同じデータベースに接続されていることを確認します。
次のコードをクエリ ウィンドウに貼り付けます。
EXEC [dbo].[AddProduct] 50, N'T-SQL Debugger Test'; GO
左ウィンドウの余白部分をクリックし、
EXEC
ステートメントにブレークポイントを追加します。Transact-SQL エディターのツール バーにある緑色の矢印ボタンのドロップダウン矢印をクリックして [デバッガーで実行] を選択し、デバッグをオンにしてクエリを実行します。
または、 SQL メニューからデバッグを開始できます。 [SQL ->デバッガーで実行] を選択します。
[ローカル] ウィンドウが開いていることを確認します。 開いていない場合は、 [デバッグ] メニューの [ウィンドウ] をポイントし、 [ローカル] をクリックします。
F11 キーを押して、ステップ インでクエリを実行します。 ストアド プロシージャのパラメーターとそれぞれの値が [ローカル] ウィンドウに表示されます。 または、
INSERT
句内の@name
パラメーターの上にマウス ポインターを移動すると、T-SQL デバッガー テストという値が割り当てられていることがわかります。テキスト ボックスの [T-SQL デバッガー テスト] を選択します。 「Validate Change」と入力して Enter キーを押すことにより、デバッグ中の
name
変数の値を変更します。 [ローカル] ウィンドウで値を変更することもできます。 パラメーターの値は赤色です。これは、変更があったことを示します。F10 キーを押して、残りのコードをステップ オーバーで実行します。
デバッグが完了したら、Product テーブルにクエリを実行して、その内容を表示します。
SELECT * FROM [dbo].[Products]; GO
結果ウィンドウで、テーブルに新しい行が存在することを確認します。