web-dev-qa-db-ja.com

T-SQLでデバッグ時にテーブル変数の値を表示する方法は?

デバッグ時にSQL Server Management Studio(SSMS)のテーブル値変数の値(行とセル)を確認できますか?はいの場合、どのように?

enter image description here

177
Faiz

このMicrosoft Connectリンクによると、まだ実装されていません: Microsoft Connect

32
rortega
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

テーブルの内容を表示する場所に上記のステートメントを挿入します。テーブルのコンテンツは、ローカルウィンドウでXMLとしてレンダリングされます。または、監視ウィンドウに@vを追加できます。

enter image description here

300
kirby

このプロジェクト https://github.com/FilipDeVos/sp_select には、一時テーブルから選択できるストアドプロシージャsp_selectがあります。

使用法:

exec sp_select 'tempDb..#myTempTable'

ストアドプロシージャのデバッグ中に、新しいタブを開いてこのコマンドを実行し、一時テーブルの内容を表示できます。

17
James Hulse

ストアドプロシージャで、グローバル一時テーブル## temptableを作成し、テーブル内のデータをこの一時テーブルに挿入するストアドプロシージャ内に挿入クエリを記述します。

これが完了したら、新しいクエリウィンドウを開いて一時テーブルの内容を確認できます。 「select * from ## temptable」を使用するだけです

6
messi19

選択クエリを使用して、確認したい場所に変数テーブルを表示します。

http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/

1
solairaja

これはプラグインなしでは不可能だという結論に達しました。

0
Faiz

SQL Server Profiler 2014は、テーブル値パラメーターの内容をリストします。以前のバージョンでも動作する可能性があります。ストアドプロシージャグループおよびTextData列でSP:StartingまたはRPC:Completedイベントを有効にし、ログのエントリをクリックすると、テーブル変数の挿入ステートメントが表示されます。その後、テキストをコピーしてManagement Studioで実行できます。

サンプル出力:

declare @p1 dbo.TableType
insert into @p1 values(N'A',N'B')
insert into @p1 values(N'C',N'D')

exec uspWhatever @PARAM=@p1
0
user3285954