2010-12-10 10 views
2

SQL Server Management Studio 2008(SSMS)のストアドプロシージャを実行中です。このコードでは、いくつかのテーブル変数と一時テーブルを作成しています。ここで、 "Locals"ウィンドウで見ることができる他のローカル変数とそこにテーブル変数がリストされている間、私はその内容を見ることができません。 #tempテーブルを検査したいと思いますが、再び実行したいselect文は、私が実行しているコードと同じセッションから来る必要があります。SSMS 2008のデバッグセッション内からテーブル変数とテンポラリテーブルを調べるにはどうすればよいですか?

これはSSMS 2008デバッガで可能ですか?

+0

http://stackoverflow.com/questions/1900857/how-to-see-the-values-of-a-table-variable-at-debug-time-in-t-sqlのDUP – Schultz9999

答えて

11

私は別のデータベース接続から一時テーブルの内容を表示しますa procedureを構築しました:これは、Microsoft Connectのこの記事を参照してくださいSSMS 2008年に

を実装されていません。 (通常のクエリでは不可能です)。 DBCC PAGE &の既定のトレースを使用してデータにアクセスするため、デバッグ目的でのみ使用することに注意してください。

+1

優れた手順 - 例えば、テーブル変数のために同じことをする方法がありますか? ATmytableから*を選択しますか? – harag

+1

テンポラリテーブルの名前を見つけることができます。詳細については、この回答を参照してくださいhttp://stackoverflow.com/a/8561729/619960 –

+0

私は最近のローカルテーブルを取得するために、 'modify * from tempdb.sys.tables order by modify_date; 'を使用しました。 exec dbo.sp_select 'tempdb ..#AE512833' 'が返されます: 'テーブル[tempdb ..#AE512833]が存在しません。 'tempdb.'部分を削除したときと同じです。しかし、最初のクエリにテーブル名が表示されています。何か案は? :^) – user2173353

1

私が複雑なprocで行うことは、@ testと呼ばれる変数の最後にデフォルト値0の入力変数を追加することです。 (このようにして、私はprocへの呼び出しを中断しません)

次に、私がテーブル変数または一時テーブルの値を見たいかもしれない各ポイントで、私はifステートメントを入れます

今#TEMP 端から

@Test IF = 1 は、TestStepとして「フィールド3を更新した後、」 SELECTをBEGIN *:私はどの時点で私はテーブルで探しています知っているので、偶数列を追加テストモードで実行している場合にのみ実行され、2年後に問題をデバッグする際に必要なものは何でも確認できます。また、テストモードで作成した動的SQlステートメントも表示します。

関連する問題