こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServer2005のストアドプロシージャのデバックの設定方法をご教示ください

SQLServer2005でストアドプロシージャを作成しました。
VisualStudioを使用すればデバッグ(一行ずつ実行して、変数の中身や動作を確認)できるということですが、設定がうまくできません。
ストアドプロシージャ作成は初めてで、周りにも経験者がいないため解決策がわからない状態です。
ご存知の方、気がついたことがある方は、ぜひご教示ください。

■■ マシン環境 ■■
OS:Windows2003Server
DB:SQLServer2005

■■ 試した方法 ■■
1.DBサーバマシンのVisualStdio2005を使用
上記マシンに、SQLServer2005をインストールしたとき、  VisualStudio2005が自動的にインストールされたので
これを使用することを考えました。

VisualStudio2005の「サーバーエクスプローラー」に、
今回作成したストアドプロシージャを表示するところまではできたのですが、
デバッグ実行できません。
メニューから「ストアドプロシージャのステップイン」を選択してデバッグウインドウを表示するらしいのですが
メニューには、以下のものしか表示されません。
 新しいプロシージャの追加 / 開く / 実行
ためしに実行すると、ストアドプロシージャは動作します
(テーブルへのデータINSERTをストアドでコーディングしており、実行後に指定値が入っていたため)
しかし、デバッグポイントを設定できず、ステップ実行もできません。


2.別マシンのVisualStdio2003を使用
私の開発マシンにはVisual Studio 2003が入っているため、
DBサーバマシンとリモートで接続して、上記と同様の設定を行いました
(このVisual Studio2003はC#開発用にインストールしたものです)。
こちらは、メニューに「ストアドプロシージャのステップイン」が出ました。しかし……。
メニューから「ストアドプロシージャのステップイン」を選択してデバッグウインドウが表示されたときに、以下のメッセージボックスが出ます。

「SQL Server データベースが正しくセットアップされていないか、またはユーザーに master.sp_sdidebug を実行する権限がないため、ストアド プロシージャをデバッグできません。」

デバッグウインドウ上でデバッグポイントは設定できますが、
ストアドプロシージャを実行してもデバッグポイントでとまらず
ステップ実行もできません。
(同様にINSERTしたテーブル値から、ストアド自体は動作していると判断)

なお、1.2.共にSA認証でSQLServer2005にログオンしています。
SQLServer のデバッグできるのは、sysadminサーバロールを持つユーザだけらしいですが、
SA認証で使用しているユーザには「sysadmin」のサーバロールは設定しています。

■■ 質問 ■■
1) QLServer2005インストールで自動的にインストールされるVisualStudioでは、
ストアドプロシージャのデバッグはできないのでしょうか?
それとも、SQLServer2005インストール時に、開発環境等の追加設定や、
別途VisualStudio2005をインストールする必要があるのでしょうか?
それとも、別にSQLServer management Studioや構成ツール等で設定が必要なのでしょうか?

または、メニューに「ストアドプロシージャのステップイン」を出す設定(方法)をご存知の方、ご教示をお願いします。


2) 「SQL Server データベースが正しくセットアップされていないか、またはユーザーに master.sp_sdidebug を実行する権限がないため、ストアド プロシージャをデバッグできません。」
このメッセージはどうすれば回避できるのでしょうか?
SQL Server データベースが正しくセットアップされていないということですが、
これまで特に支障がないため問題はないと思っているのですが……。

検索で以下のサイトを見つけましたが、SQLServer2000のため参考になるかは疑問です。
  http://support.microsoft.com/kb/839280/ja
  http://support.microsoft.com/kb/886680/ja

以下のサイトは、どうすれば原因回避できるのかわかりませんでした(勉強不足を感じております)
  http://msdn2.microsoft.com/ja-jp/library/ms164014.aspx

master.sp_sdidebug を実行する権限の設定方法をご存知の方、ご教示いただけませんでしょうか?

3) Visual Studio以外で、SQLServer2005のストアドプロシージャをデバッグする方法がありましたらご教示ください。
変数の途中の値を一時テーブルにINSERTして確認するくらいしか方法はありませんでしょうか?

申し訳ございませんが、もしご存知の方、ご教示いただけませんでしょうか?
なお、設定やマシン環境で記述不足等ありましたら、ご指摘いただければと思います。

以上です。よろしくお願いします

投稿日時 - 2008-01-09 23:01:59

QNo.3665478

困ってます

質問者が選んだベストアンサー

再びNo1です。
No1でも提案しましたが、SQLServer Management Studioというツールを使用してみてはどうでしょうか。

わざわざMS社に確認してみたところ、
>Management Studio は、Visual Studio 2005 に組み込まれているツールとなりますので、Visual Studio 2005 Standard Edition に含まれております。
とのことでした。
なのでManagement Studioのご使用をお勧めします。

投稿日時 - 2008-01-11 17:29:02

お礼

長い間回答せずすみませんでした(インフルエンザでダウンしてしまいました……)
ご回答ありがとうございます。わざわざ確認していただきましてありがとうございました。
出社したら試してみたいと思います。
今回は何回もご回答いただきまして、ありがとうございました。
回答せずにいた無礼をお許しください。

以上です

投稿日時 - 2008-01-15 22:50:02

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(2)

まず致命的な記述不足があります。
あなたのお使いのVisual StudioやSQLServer 2005は何のエディションを使用していますか?

当方はVistaにVisual C# 2005 Express EditionおよびSQLServer2005 ExpressEdition(SP2)利用です。
ストアドプロージャの作成や編集は確かにVisual Studioから行うことができますが、デバッグはこちらの環境でもできませんでした。
ただ、SQLServer Management Studio Expressの中ではストアドプロージャでデバッグや解析などの詳細な追跡を行うことができましたよ。

http://www.microsoft.com/downloads/details.aspx?familyid=6053C6F8-82C8-479C-B25B-9ACA13141C9E&displaylang=ja
↑SQL Server Management Studio Express(SP2)ダウンロード

もしあなたのご利用のエディションが違う場合は、この方法では解決できないかもしれません。

投稿日時 - 2008-01-10 00:42:37

お礼

terulan様。早急のご回答ありがとうございます。回答が遅くなりまして申し訳ございません。
記述抜け失礼しました。

SQLServer2005、VisualStudio、両方StandardEditionです。
お教えいただいたサイトのツールは対象外のようです……。

せっかく教えていただいたのに、残念です。
terulan様、ご指導ありがとうございました。


申し訳ございませんが、引き続き質問を続けさせていただきたいと思います。
勝手を言いまして、本当にすみません。
もしご教示いただける方おられましたら
勝手を言いますが、お教えいただければと思います。

投稿日時 - 2008-01-10 23:37:00

あなたにオススメの質問