web-dev-qa-db-ja.com

C#コードからSQL Serverストアドプロシージャにステップインするにはどうすればよいですか?

Ado.netを使用してSQLServerのストアドプロシージャ(TSQL)を呼び出すC#コードをデバッグしています。ストアドプロシージャにステップインするにはどうすればよいですか?

(これはマイクロソフトのスタッフによってデモされたのを見たと思いますが、それを機能させるために必要な101の「魔法の」設定を思い出せません。)

30
Ian Ringrose

それがまさに私が経験したプロセスだったので、私はダビデの答えとそれに対するイアンのコメントに基づいて構築します。

仮定:回答はVS2008&VS201に基づいています。

.NETアプリのデバッグ中にSQLServerでT-SQLストアドプロシージャをステップ実行するには、次の手順を実行する必要があります。

  1. MSサポートの指示に従ってください "Visual Studio .NETでストアドプロシージャをデバッグする方法 (オプション2)"

    • プロジェクトのプロパティでSQLServerデバッグが有効になっていることを確認します(リンクされた手順のステップ4)。
    • ストアドプロシージャのブレークポイント自体が設定されていることを確認します(手順6〜7)
  2. ストアドプロシージャが呼び出されるデータ接続でSQL/CLRデバッグを許可するを有効にします。

    • (この2番目のステップがないと、 "ブレークポイントは現在ヒットしません。現時点ではSQLブレークポイントをバインドできません。ブレークポイントを含むオブジェクトはロードされていません。"報告されているとおりイアンによる)
    • サーバーエクスプローラー>データ接続
    • 右クリックコードで使用している接続
    • メニューのSQL/CLRデバッグを許可するオプションにチェックマークを付けます

コメントから追加:(これはそれを機能させるための鍵のようです)

プログラムで作成された接続でも機能します。サーバーインスタンスを右クリックし、[プロパティ]をクリックして、[接続文字列](ドイツ語でVerbindungszeichenfolge)までスクロールすると表示されるまったく同じ接続文字列を使用する必要があります。

16

VS 2012を使用していて、サーバーエクスプローラーウィンドウからSQL/CLRデバッグを有効にできない理由について混乱している場合は、実際には[SQLServerオブジェクトエクスプローラー]ウィンドウを介して接続する必要があります。

そのウィンドウで接続が確立されると、Allow SQL/CLR DebuggingおよびApplication Debugging設定はサーバーの右クリックコンテキストメニューに表示されます。これはおそらく2013年にも当てはまりますが、確認できません。

8
Nathan Daniels

プロジェクトのプロパティでSQLServerのデバッグを有効にします。

1
Davide Piras

ソリューションエクスプローラーで、(ソリューションではなく)プロジェクトを右クリックし、[プロパティ]ページを開きます。ツリーの[構成のプロパティ]をクリックし、[デバッグ]ページの[SQL Serverデバッグ]チェックボックスをクリックして選択して、ストアドプロシージャのデバッグを有効にします。

参照: http://support.Microsoft.com/kb/316549

0
Davide Piras