web-dev-qa-db-ja.com

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

SQL Server 2008でストアドプロシージャをデバッグする方法はありますか?

SQL Server Management Studio 2008とVisual Studio 2008を使用するアクセス権があります(どちらがこの機能を提供するかはわかりません)。

通常、SQLプロファイラーを使用してストアドプロシージャに渡されたパラメーターを見つけますが、プロシージャをステップ実行して、どこで失敗しているかを確認したいと思います。

これは可能ですか?

最善の方法は何ですか? (バグの場所をすばやく見つけるという点で)

36
Russell

まあ、答えはずっと私の目の前に座っていた。

SQL Server Management Studio 2008では、ツールバーに[デバッグ]ボタンがあります。クエリウィンドウにブレークポイントを設定して、ステップスルーします。

ストアドプロシージャにステップインすることを考えていなかったため、最初はこの機能を却下しました。簡単に実行できます。

SSMSは基本的に、FinnNKがMSDNウォークスルーで言及したことを自動的に行います。

とても簡単! FinnNKにご協力いただきありがとうございます。

編集:データベースでSQLプロファイラーを使用したパラメーターを持つストアドプロシージャコールを見つけるために、そこにステップを追加する必要があります。

33
Russell

はい、できます(少なくともプロフェッショナルバージョンのVisual Studioがあれば)。ただし、これを行った後は少しセットアップする必要がありますが、デバッグコードと大差ありません。 MSDNには基本的なウォークスルーがあります

16
FinnNk
  • はい、特に自分の開発マシンからリモートSQLサーバーでSQLをデバッグしようとする場合、デバッグを動作させるのは難しい場合があります。
  • 最初のインスタンスでは、可能であれば、最初にサーバーで直接デバッグして、これを機能させることをお勧めします。
  • Sysadmin権限を持つアカウントを使用してSQLサーバーにログインするか、DBAにこれを行うよう依頼してください。
  • 次に、自分のWindowsアカウントに対して、SQL Serverに「ログイン」がまだない場合は作成します。

enter image description here

  • アカウントを右クリックして、プロパティ-ログインが「sysadmin」ロールのメンバーであることを確認します。

enter image description here

  • (また、アカウントが以下のスクリプト(たとえば、ストアドプロシージャ)をデバッグするデータベースの「所有者」であることを確認します。

enter image description here

  • 次に、Windowsアカウントを使用してSQLサーバーに直接ログインします。
  • Windows認証を使用して(サーバーへのログインに使用したアカウントを使用して)SQLサーバーにログインします
  • SQL Management Studioでクエリを「デバッグ」し、必要に応じてブレークポイントを設定します。 F11を使用してストアドプロシージャにステップインできます。

enter image description here

  • デバッグの便利なガイドを次に示します。

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • リモートでデバッグする必要がある場合は、この部分が機能するようになったら、リモートデバッグを設定してみてください。

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

4
Chris Halcrow

リモートデバッグの1つの要件は、SSMSの実行に使用されるWindowsアカウントがsysadminロールの一部であることです。このMSDNリンクを参照してください: http://msdn.Microsoft.com/en-us/library/cc646024%28v=sql.105%29.aspx

0
Jaes

MSDNは、ストアドプロシージャをデバッグする簡単な方法を提供しています。このリンクを確認してください-
方法:ストアドプロシージャのデバッグ

0
ShaileshDev