私は非常に複雑なT-SQLプロシージャを約2000行(私は開発していませんでした)しています。私はそれにいくつかのバグを修正するように求められました。
への最善の方法は何ですか:私は、変数に SQL Serverで複雑なT-SQLプロシージャをデバッグ
私の質問を見て、「PRINT」文の使用SQL Server Management Studio
- :私はいくつかの方法を試してみましたこのような手順をデバッグしますか?
私は非常に複雑なT-SQLプロシージャを約2000行(私は開発していませんでした)しています。私はそれにいくつかのバグを修正するように求められました。
への最善の方法は何ですか:私は、変数に SQL Serverで複雑なT-SQLプロシージャをデバッグ
私の質問を見て、「PRINT」文の使用SQL Server Management Studio
ほとんどのクエリ(挿入、更新&の削除を含む)には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;
スタート複数の小さなプロシージャに手順をリファクタリングすることによってテストすることができ、孤立してデバッグします。
SQL Server 2008では、「デバッグ>>開始デバッグ」を利用できます。これらは
(印刷するかどうかを決定するためのパラメータを持つことで)SQLプロファイラ
プリントのstmtのhttp://msdn.microsoft.com/en-us/library/yet1b7by(VS.80).aspx
メイクの使用 - 以前のバージョンでは、私は、Visual Studioを使用してきました非PROD環境でのみ使用され、テストされます。
トップダウンから段階的にレビューするステートメント。バグによっては、実際に実行されているもの(ストアドプロシージャとTSQL)を監視するためにProfilerを使用することは良い考えです。 –