如何在T-SQL中的调试时查看表变量的值?

Fai*_*aiz 180 sql debugging ssms table-variable

我们可以在调试时间内在SQL Server Management Studio(SSMS)中看到表值变量中的值(行和单元格)吗?如果有,怎么样?

在此输入图像描述

小智 306

DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)
Run Code Online (Sandbox Code Playgroud)

在要查看表格内容的位置插入上述语句.表的内容将在本地窗口中呈现为XML,或者您可以添加@v到监视窗口.

在此输入图像描述

  • 但还是不要停止阅读!下面另一个很棒的选择!伟大的线程!! (4认同)
  • 使用 SQL Server 2016 或从不使用此`DECLARE @v nvarchar(max) = (SELECT * FROM &lt;tablename&gt; FOR JSON AUTO)` 的 JSON 版本 (4认同)

ror*_*ega 32

根据此Microsoft Connect链接尚未实现: Microsoft Connect

  • 不要停止阅读人们...下面很好的替代答案! (102认同)
  • 说实话,这实际上并不是一个答案,因为它没有回答问题,问题是如何做到(不是SSMS是否有任何功能),说明这是没有实现,而有方法显示值不是很有帮助. (5认同)
  • [2012年的答案相同](http://stackoverflow.com/questions/17610446/how-to-view-data-in-table-variables-during-debugging-session-in-ms-sql-managemen) (4认同)
  • 现在是 2016 年。没有更好的了。Connect 链接也不再起作用。 (2认同)
  • 请删除此答案。下面的答案应该是公认的答案。 (2认同)

Jam*_*lse 17

该项目https://github.com/FilipDeVos/sp_select有一个存储过程sp_select,允许从临时表中进行选择.

用法:

exec sp_select 'tempDb..#myTempTable'
Run Code Online (Sandbox Code Playgroud)

在调试存储过程时,您可以打开一个新选项卡并运行此命令以查看临时表的内容.

  • 非常适合临时表,但不适用于表变量 (6认同)

Sou*_*uke 7

如果您使用的是 SQL Server 2016 或更高版本,您还可以选择它作为 JSON 结果并在 JSON Visualizer 中显示它,它比 XML 更容易阅读,并且允许您过滤结果。

DECLARE @v nvarchar(max) = (SELECT * FROM Suppliers FOR JSON AUTO)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


小智 6

在存储过程中,创建一个全局临时表## temptable,并在存储过程中写入一个插入查询,该查询将表中的数据插入到此临时表中.

完成此操作后,您可以通过打开新的查询窗口来检查临时表的内容.只需使用"select*from ## temptable"