次の方法で共有


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

更新 : 2007 年 11 月

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

Edition

Visual Basic

C#

C++

Web Developer

Express

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

Standard

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

Pro/Team

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

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

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

既定で非表示のコマンド

6c02e2k1.alert_caution(ja-jp,VS.90).gif注意 :

拡張ストアド プロシージャの使用は推奨されません。現在でも、下位互換性のために ASP.NET で拡張ストアド プロシージャがサポートされていますが、将来のリリースではサポートされなくなる予定です。

拡張ストアド プロシージャは、ファイル システムへのアクセスやレジストリの読み取りなど、T-SQL でできなかった操作を実行できるようにすることを目的として導入されました。SQL CLR プロシージャを記述することで、これらの操作はすべて実行できるので、現在では、拡張ストアド プロシージャを記述する必要はなくなりました。新たに拡張ストアド プロシージャを記述しないことを強く推奨します。また、既存の拡張ストアド プロシージャは、同等の (また、より安全な) SQL CLR ストアド プロシージャで置き換えることを検討してください。

拡張ストアド プロシージャは、C++ (またはその他の言語) で記述された DLL であり、SQL ベースではありません。したがって、拡張ストアド プロシージャのデバッグは、その言語で作成された DLL のデバッグに近くなります。

6c02e2k1.alert_caution(ja-jp,VS.90).gif注意 :

通常、拡張ストアド プロシージャは、ネイティブ C++ で記述されるため、マネージ コードのように保護されません。バグが原因となって SQL Server がクラッシュする可能性があるため、慎重にテストする必要があります。データ損失やその他の問題を避けるには、拡張ストアド プロシージャのデバッグを運用サーバーで行わないでください。詳細については、ASP.NET Books Online を参照してください。

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

拡張ストアド プロシージャをデバッグするには

  1. まず、拡張ストアド プロシージャ DLL のデバッグ ビルドを実行します。また、デバッグする拡張ストアド プロシージャを呼び出すアプリケーションが必要です。このアプリケーションは、次の方法で用意できます。

    • 拡張ストアド プロシージャと拡張ストアド プロシージャを呼び出すコードを含むデータベースへのデータ接続を持つ、Visual Studio データベース プロジェクトを作成します。

    • 拡張ストアド プロシージャを呼び出す SQL スクリプト ファイルを作成します。

      または

    • ISQL/W (SQL Server に同梱) や ODBC Test (ODBC SDK に同梱) などのアプリケーションを使用します。

  2. SQL Server がサービスとして実行されている場合は、[サービス] コントロール パネルを開き、[SQL Server]、[停止] の順にクリックして、サービスを停止します。

  3. sqlservr.exe が格納されているディレクトリまたは検索パスのディレクトリに、デバッグ バージョンの DLL をコピーします。

    または

    DLL を C++ プロジェクトにコピーするには、次の手順を実行して、ビルド後のイベントを設定します。

    1. [<プロジェクト> プロパティ ページ] ダイアログ ボックスを開きます。

    2. [<プロジェクト> プロパティ ページ] ダイアログ ボックスで、[構成プロパティ] フォルダを開きます。

    3. [構成プロパティ] フォルダの下の [ビルド イベント] フォルダを開きます。

    4. [ビルド後のイベント] をクリックします。

    5. [コマンド ライン] の横にあるグリッド コントロールで、次のようにコピー コマンドを入力します。

      Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

  4. 拡張ストアド プロシージャを登録します。

  5. 呼び出し側の実行可能ファイルとして SQL Server を指定し、拡張ストアド プロシージャ DLL の作業ディレクトリを指定します。[<プロジェクト> プロパティ ページ] ダイアログ ボックスの設定を次のように変更します。このダイアログ ボックスには、[構成プロパティ] の [デバッグ] カテゴリからアクセスできます。

    • SQL Server を既定の場所にインストールしている場合は、[コマンド] ボックスに「C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE」と入力します。

    • [作業ディレクトリ] のエントリを C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn に設定します。

    • [コマンド引数] のエントリを -c に設定します。-c オプションを指定すると、SQL Server はサービスとしてではなく、コマンド ラインから起動します。これにより、SQL Server の起動は高速化します。SQL Server は、サービスとしてではなくコンソール アプリケーションとして、Visual Studio デバッグ環境で起動されます。これにより、ブレークポイントが正しくトラップおよび処理されます。

  6. 拡張ストアド プロシージャのソース コードにブレークポイントを設定します。

  7. 実行コマンドを使用して、デバッグ セッションを開始します。詳細については、「実行制御」を参照してください。

    SQL Server が起動すると、コンソール ウィンドウが表示されます。テキストのスクロールは、次のメッセージで停止します。

    Launched startup procedure 'sp_sqlregister'

    SQL Server が起動し、要求の処理が開始されます。

  8. 拡張ストアド プロシージャを実行します。

    ブレークポイントが設定された行に達すると、デバッガが停止します。

    拡張ストアド プロシージャの作成に関するヒントについては、Microsoft サポート技術情報の SQL Server の文書を参照するか、MSDN ライブラリにある SQL Server ドキュメントの「拡張ストアド プロシージャのプログラミング」を参照してください。

参照

概念

SQL のデバッグ