2012-01-15 15 views
3

私は非常に複雑なT-SQLプロシージャを約2000行(私は開発していませんでした)しています。私はそれにいくつかのバグを修正するように求められました。
への最善の方法は何ですか:私は、変数に SQL Serverで複雑なT-SQLプロシージャをデバッグ

私の質問を見て、「PRINT」文の使用SQL Server Management Studio

  • で見つかったデバッグオプションを使用して

    • :私はいくつかの方法を試してみましたこのような手順をデバッグしますか?

  • +3

    トップダウンから段階的にレビューするステートメント。バグによっては、実際に実行されているもの(ストアドプロシージャとTSQL)を監視するためにProfilerを使用することは良い考えです。 –

    答えて

    2

    ほとんどのクエリ(挿入、更新&の削除を含む)にはoutput句を使用できるため、結果が途切れることなく、手順の流れを乱すことなく表示できます。 Exampls:

    DELETE文:

    delete [tbl] 
    output deleted.* 
    where [something] = 'stuff'; 
    

    INSERT文:

    insert [tbl] 
    output inserted.* 
    values (42, 'things'); 
    

    UPDATE文:

    update [tb] 
    output deleted.*, -- Original values 
         inserted.* -- Updated values 
        set [something] = 'poopen' 
    where [id] = 42; 
    
    4

    スタート複数の小さなプロシージャに手順をリファクタリングすることによってテストすることができ、孤立してデバッグします。

    1
    1. SQL Server 2008では、「デバッグ>>開始デバッグ」を利用できます。これらは

    (印刷するかどうかを決定するためのパラメータを持つことで)SQLプロファイラ

  • プリントのstmtのhttp://msdn.microsoft.com/en-us/library/yet1b7by(VS.80).aspx

  • メイクの使用 - 以前のバージョンでは、私は、Visual Studioを使用してきました非PROD環境でのみ使用され、テストされます。