ストアド プロシージャをデバッグする方法
Transact-SQL デバッガーでは、SQL ストアド プロシージャの SQL 呼び出し履歴、ローカル変数、およびパラメーターが表示され、ストアド プロシージャをインタラクティブにデバッグできます。他のプログラミング言語でのデバッグと同様、Transact-SQL スクリプトのデバッグでも、ローカル変数とパラメーターの表示と修正、グローバル変数の表示、およびブレークポイントの制御と管理を行うことができます。
この例では、Transact-SQL ストアド プロシージャを作成し、ステップ インでデバッグする方法を示します。
警告
以下に示す手順では、「接続されているデータベース開発」および「プロジェクト指向のオフライン データベース開発」に示されている手順で作成したエンティティを使用します。
ストアド プロシージャをデバッグするには
ソリューション エクスプローラーで TradeDev プロジェクトを右クリックし、[追加] をポイントして、[ストアド プロシージャ] をクリックします。この新しいストアド プロシージャに AddProduct という名前を付けて、[追加] をクリックします。
次のコードをストアド プロシージャに貼り付けます。
CREATE PROCEDURE [dbo].[AddProduct] @id int, @name nvarchar(128) AS INSERT INTO [dbo].[Product] (Id, Name) VALUES (@id, @name)
F5 キーを押し、プロジェクトのビルドと配置を行います。
SQL Server オブジェクト エクスプローラーの [ローカル] ノードの下で、TradeDev データベースを右クリックし、[新しいクエリ] をクリックします。
次のコードをクエリ ウィンドウに貼り付けます。
EXEC [dbo].[AddProduct] 50, N'Contoso'; GO
左ウィンドウの余白部分をクリックし、EXEC ステートメントにブレークポイントを追加します。
Transact-SQL エディターのツール バーにある緑色の矢印ボタンのドロップダウン矢印をクリックし、[デバッガーで実行] をクリックすることにより、デバッグをオンにしてクエリを実行します。
または、SQL Server オブジェクト エクスプローラーからデバッグを開始することもできます。AddProduct ストアド プロシージャ ([ローカル] -> TradeDev データベース -> [プログラミング] -> [ストアド プロシージャ] の順に選択して表示) を右クリックします。[プロシージャのデバッグ] をクリックします。オブジェクトにパラメーターが必要な場合には、[プロシージャのデバッグ] ダイアログ ボックスに、各パラメーターの行を含むテーブルが表示されます。テーブルの各行には、パラメーター名の列およびパラメーター値の列があります。各パラメーターの値を入力して、[OK] をクリックします。
[ローカル] ウィンドウが開いていることを確認します。開いていない場合は、[デバッグ] メニューの [ウィンドウ] をポイントし、[ローカル] をクリックします。
F11 キーを押して、ステップ インでクエリを実行します。ストアド プロシージャのパラメーターとそれぞれの値が [ローカル] ウィンドウに表示されます。または、@name 句内の INSERT パラメーターの上にマウス ポインターを移動すると、Contoso という値が割り当てられていることがわかります。
テキスト ボックス内で Contoso という文字列をクリックします。「Fabrikam」と入力して Enter キーを押すことにより、デバッグ中の name 変数の値を変更します。[ローカル] ウィンドウで値を変更することもできます。パラメーターの値が赤色で表示されます。これは、変更があったことを示します。
F10 キーを押して、残りのコードをステップ オーバーで実行します。
SQL Server オブジェクト エクスプローラーで、Product テーブルのデータ ビューに新しいコンテンツを表示するために、[TradeDev] データベース ノードを更新します。
SQL Server オブジェクト エクスプローラーの [ローカル] ノードの下で、TradeDev データベースの Product テーブルを探します。
Product テーブルを右クリックし、[データの表示] をクリックします。テーブルには、新しい行が追加されています。