2004.10.28

SQLServer2000でのSQLのステップ実行

あまり使われていないようなので紹介してみる。

ストアドプロシージャを作っていて、デバッグに苦心することがある。よくある。
VBみたいにステップ実行できれば良いのに・・・


実は VisualStudio.NETで SQLのステップ実行ができる。

とにかく VisualStudio.NETを立ち上げる(ソリューションは空で可)
 “表示”メニュー → 『サーバーエクスプローラ』 を表示する。
お目当ての SQLServerが登録されてなければ右クリックして“サーバの追加”を行い、
そのサーバについてツリーをどんどん掘り下げていけば、ストアドプロシージャの一覧までたどり着く。
後はステップ実行したいストアドプロシージャを右クリックして『ストアドプロシージャにステップイン』
を選択するだけ。(必要に応じて引数を入力するダイアログが勝手に表示される)

VisualStudio.NETでは、ステップ実行、ブレークポインタを仕掛けての実行はもちろん、
変数の中身についてもすべて動的に表示できる。


ただし、ここまでの手順がすんなり実行できなかった場合、
1)VisualStudio.NETが持っている SQLServer監視用の DLLのバージョンと
 SQLServer自体のバージョンが合っていないため。
2)SQLServerマシン側の DCOMの設定(セキュリティ設定を含む)の
 調整が合っていない。
いずれかの理由であると考えられる。
・・・と書くのは簡単だが、正しい環境になるまでかなりの試行錯誤要素を含んでいる。
詳しくは VisualStudio.NETの HELPを参照のこと。
 Visual Studio .NET
  → Visual Studio .NETによる開発
   → ビルド、デバッグ、およびテスト
    → デバッグ
     → SQLのデバッグ

なお、このデバッグにはもうひとつ問題があって、グループ化したストアドプロシージャを
正しく追跡表示できない。(ステップ実行そのものは正しく行われるが、画面表示と同期されない)
グループ化したストアドプロシージャそのものが一般的にあまり使われていない機能なのかもしれませんが、
改善して欲しいものです。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ichikawa