web-dev-qa-db-ja.com

SQL Server Management Studioでのストアドプロシージャのデバッグ

SQL Server Management Studioのストアドプロシージャコードにステップインする方法はありますか? Visual Studioでこれが可能であることは知っていますが、Management Studio内から信頼できるデバッグソリューションを探しています。

41
Nick

SQL 2008およびSSMS 2008のみ。「Debug\Start Debugging」メニューから選択するか、Alt + F5を押すと、ステップごとのT-SQLデバッガーが起動します。

2005年の唯一の方法は、プロファイラーを接続して SP:StmtCompleted イベントを監視することです。これは、正確なデバッガーのステップバイステップではありませんが、少なくとも実行フローが表示されます。明らかに、本番マシンでは実行しないでください。

26
Remus Rusanu

私はそれについてかなり詳細なブログ記事をここに書いた:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

基本的には、SQLクエリを入力してストアドプロシージャを実行し、押す代わりに F5 または感嘆符を押すと、再生ボタンを押して使用します F10 そして F11 ストアドプロシージャをステップスルーしてステップインします。

これは非常に便利ですが、誰も使用していないようです。

23
Doug

SQL Server 2000のクエリアナライザーにあったsprocをデバッグする機能は、SQL Server 2005には組み込まれていませんでした。Microsoftはこの誤りを認識し、SQL Server 2008に機能を戻しました。

SSMS 2008では、ツールバーのデバッグボタンをクリックするか、Alt + F5キーを押すことで、デバッガーを起動できます。

残念ながら、2005データベースに対してSSMS 2008を実行するとデバッグできなくなるため、Visual Studioに固執する必要があります。

4
Nick Kavadias

Visual Studioを使用したスト​​アドプロシージャのデバッグに注意してください。これを実装する方法は、信じられないほどの量のロックを使用して、実稼働システムでこれを実行しないようにすることです。

4
Rob Farley

はい。SSMS2008では、T-SQLコード(コードブロック、ストアドファンク、ストアドプロシージャ)に確実にステップインしてデバッグできます。

詳細については、この優れた記事 SQL Server 2008のManagement Studioの改善 を参照してください-デバッグも扱っています(記事の終わりに向かって)。

3
marc_s

SSMSを使用してリモートインスタンスをデバッグするときは、サーバーとクライアントのファイアウォールで、それぞれsqlservr.exeとssms.exeをTCPポート135とともに許可する必要があることに注意してください。デバッグします。

1
Adam Caviness