web-dev-qa-db-ja.com

Visual Studio2012でSQLServerT-SQLをデバッグする方法

Visual Studio 2012の多層アプリケーションでT-SQLストアドプロシージャをデバッグするにはどうすればよいですか?

明確にするために、VS 2012のsprocにブレークポイントを設定し、同じデバッグセッションでASP.NETWebFormsアプリからsprocが呼び出されたときにブレークポイントを設定したいと思います。

VS 2010の場合と同じ手順に従うと、ブレークポイントはsproc内でヒットしません。

SQL Server 2008 R2 ExpressデータベースのsprocでのT-SQLのデバッグは、Visual Studio2010で期待どおりに機能します。

すべてが正しく有効になっていることを確認するために、VS 2010の手順( ここ )を確認しましたが、VS2012または.NET4.5にはそのようなページはありません。

欠落している手順は「アプリケーションのデバッグ」を有効にすることのようですが、VS2012の[サーバーエクスプローラー]> [データ接続]コンテキストメニューにはそのようなオプションはありません。

VS2010アプリケーションのデバッグ

enter image description here

VS2012アプリケーションのデバッグなし

enter image description here

14
nekno

「サーバーエクスプローラー」ではなく「SQLServerオブジェクトエクスプローラー」を開く必要があります。これが2010年と2012年の違いです。次にサーバーを右クリックして「アプリケーションのデバッグ」を選択します。

28
Hunter

これはVS2012およびSQL2012用です。はい、他のバージョンでは多少異なりますが、同様の設定に従います。さまざまな設定を適切に行う必要があるため、注意が必要です。そうしないと機能しません。

  • すべての正しいオプションを使用したVSとSQLの両方のVanillaインストール(これを行う方法はこの記事の範囲外です)

  • 環境全体に対する完全な管理者権限とSQLに対するsysadmin権限(基本的には開発環境。実稼働環境ではこれを実行したくない)

  • 私は常に完全なローカルで.netWebアプリをデバッグしますIISこれはコントロールパネルからインストールされたWindows機能です

    • .netプロジェクトのプロパティ、ウェブに移動し、ローカルのiisウェブサーバーを使用します(私もデフォルトのポート80に固執します)
  • vS sqlサーバーデータベースプロジェクトを使用してデータベースなどを開発している間、私は常に完全なスタンドアロンローカルSQLで作業します。スキーマ比較を使用して、VSで行われた変更でそのSQLを更新します(これを行う方法はこの記事の範囲外です)

    • spのそのコピーにブレークポイントを設定しないでください。そのバージョンのspは単なる青写真であり、ランタイムバージョンではありません
  • .netおよびSQLサーバーで有効になっている.netプロジェクトのプロパティ、ウェブ、デバッガー(下部)に移動します

  • sQLサーバーオブジェクトエクスプローラーを表示します(サーバーエクスプローラーではありません)

    • [SQLサーバーの追加]をクリックし、sysadmin資格情報を使用して完全なローカルSQLサーバーを追加します(このような作業には常にsaを使用します)
    • 完全なローカルSQLサーバーを右クリックして、アプリケーションのデバッグを有効にします
    • spを見つけて右クリックしてコードを表示し、そこにブレークポイントを追加します。これはspのランタイムバージョンです(spに変更を加えることは決してないことに注意してください。データベースプロジェクトの下のマスターコピーでこれらを変更します)
  • ソリューションを再構築し、緑色の矢印Internet Explorerをクリックして、IDE内からデバッグモードで.netWebアプリを実行します。

私は何も忘れていないことを願っています。持っていれば、投稿を修正しに来ます。

これはすべて複雑に聞こえるかもしれません。です。しかし、少しの規律と忍耐でそれは貴重です。幸運を。

2
ES44AC SD70MAC

これを行う最も簡単な方法は、DBをプロジェクトとしてソリューションに追加することだと思います。これを行うには、SQL Serverオブジェクトエクスプローラー(SSOX)でDBを右クリックします。これは、DBを開発およびデバッグするための非常に優れた方法です。プロジェクトにDBを追加した後、任意の場所にブレークポイントを追加し、LocalDB(または必要に応じて別のターゲット)に対してデバッグできます。このアプローチの最大の欠点は、既存のデータが一緒に移行されないことです(ただし、変更をSQL DBに自由に公開することは簡単にできます)。詳細なガイダンスについては、MSDNのSSDTの ドキュメント を参照してください。

1
Andrew Clear

次の詳細な記事では、.Netアプリケーションの実行時にストアドプロシージャのデバッグを有効にする方法を正確に説明しています。

http://www.sqlmag.com/content1/topic/debugging-stored-procedures-142054/catpath/sql-server

0
Conrad Lotz