次の方法で共有


チュートリアル : T-SQL ストアド プロシージャのデバッグ

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当なし トピック該当なし トピック該当なし

Standard

トピック該当なし トピック該当なし トピック該当なし トピック該当なし

Pro/Team

トピック該当 トピック該当 トピック該当 トピック該当

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

この例では、ダイレクト データベース デバッグによって (サーバー エクスプローラを使用してストアド プロシージャにステップ インすることによって) T-SQL ストアド プロシージャを作成する方法とデバッグする方法について説明します。また、ブレークポイントの設定、データ項目の表示など、さまざまなデバッグ技術についても説明します。

yet1b7by.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

T-SQL ストアド プロシージャをデバッグするには

  1. 新しい SQL Server プロジェクトで、AdventureWorks サンプル データベースへの接続を確立します。詳細については、「方法 : データベースに接続する」を参照してください。

  2. 後述する最初のサンプルにあるコードを使用して、新しいストアド プロシージャを作成し、HelloWorld と名前を付けます。詳細については、「方法 : SQL Server のプロジェクトの種類を使用して開発する」を参照してください。

  3. HelloWorld にブレークポイントを設定し、ストアド プロシージャにステップ インします。詳細については、「方法 : サーバー エクスプローラを使用してオブジェクトにステップ インする」を参照してください。SET @mynvarchar = @@VERSION 行に、黄色の矢印で指定された命令ポインタが表示されます。これは、ストアド プロシージャにおける最初の実行可能なコード行です。

  4. いろいろなデバッグ機能を試してください。

    1. [ローカル] ウィンドウを表示します。これを行うには、[デバッグ] メニューの [ウィンドウ] をポイントし、[ローカル] をクリックします。パラメータとローカル変数およびそれらの値が、[ローカル] ウィンドウに表示されます。ストアド プロシージャの実行時に、変数の値を [ローカル]ウィンドウで編集できます。詳細については、「方法 : デバッガ変数ウィンドウを使用する」を参照してください。

      メモ   サーバーは、デバッガ ウィンドウの変数値に対する変更を反映しない場合があります。詳細については、「SQL デバッグの制約」を参照してください。

    2. F10 キーを押して、ストアド プロシージャの 1 行をステップ実行します。[ローカル] ウィンドウでは、変数 @mynvarchar の値が変化しています。値は赤色で表示され、変更されたことを示します。

    3. [ウォッチ] ウィンドウを表示します。これを行うには、[デバッグ] メニューの [ウィンドウ] をポイントし、[ウォッチ] をクリックします。詳細については、「方法 : デバッガ変数ウィンドウを使用する」を参照してください。

    4. テキスト エディタで、@mynvarchar 変数をダブルクリックして選択します。[ウォッチ] ウィンドウの任意の場所に @mynvarchar をドラッグします。ウォッチする変数のリストに追加されます。

      メモ   [ウォッチ] ウィンドウでも変数の値を編集できます。

    5. テキスト エディタで、 Return (0) の行を右クリックし、ショートカット メニューの [ブレークポイントの挿入] をクリックします。

    6. [デバッグ] メニューの [続行] をクリックします。

  5. もう一度 [続行] をクリックして、ストアド プロシージャのデバッグを終了します。

    メモ   [ストアド プロシージャ] ノードの下に表示されている AdventureWorks データベースのストアド プロシージャであれば、任意のプロシージャにステップ インできます。

使用例

これは、ストアド プロシージャのコードです。

CREATE PROCEDURE HelloWorld
AS
    DECLARE @mynvarchar NVARCHAR(50),
            @myfloat FLOAT
    SET @mynvarchar  = @@VERSION
    SET @mynvarchar  = 'Hello, world!'
    SET @myfloat     = 1.6180
    PRINT @mynvarchar
    RETURN (0)

参照

概念

SQL のデバッグ

参照

サーバー エクスプローラ/データベース エクスプローラ