如何在debugging时在T-SQL中查看表variables的值?

在debugging期间,我们可以在SQL Server Management Studio(SSMS)中查看表值variables中的值(行和单元格)吗? 如果是的话,怎么样?

在这里输入图像说明

这还没有实现根据此Microsoft Connect链接: Microsoft Connect

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

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

在这里输入图像说明

这个项目https://github.com/FilipDeVos/sp_select有一个存储过程;sp_select ,它允许从临时表中进行select。

用法:

 exec sp_select 'tempDb..#myTempTable' 

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

在“存储过程”中,创build一个全局临时表## temptable,并在存储过程中写入一个插入查询,将表中的数据插入到这个临时表中。

一旦完成,您可以通过打开一个新的查询窗口来检查临时表的内容。 只要使用“select * from ## temptable”

只要使用select查询来显示表varialble,哪里你要检查。

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

为什么不select表格并查看variables呢?

 SELECT * FROM @d 

我得出的结论是,这是不可能的,没有任何插件。

SQL Server Profiler 2014列出了表值参数的内容。 也可能在以前的版本中工作。 在Stored Procedures组和TextData列中启用SP:Starting或RPC:Completed事件,并且当您在日志中单击条目时,您将拥有表variables的插入语句。 然后,您可以复制文本并在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 

对不起,伙计们,我晚了一点,但对于任何人在晚些时候遇到这个问题,我发现存储过程中最简单的方法是:

  1. 创build一个新的查询,并在顶部声明和初始化任何过程参数。
  2. 粘贴在你的程序的正文中。
  3. 在您的表variables用数据初始化后,立即添加一个好的旧式select查询。
  4. 如果3.不是过程中的最后一个语句,则在同一行上设置一个断点,开始debugging并直接进入断点。
  5. 利润!!

messi19的答案应该是被接受的答案,恕我直言,因为它比我的简单, 大多数时间做这项工作,但是如果你像我一样,并且在你想要检查的循环中有一个表variables,这个工作很好没有太多的努力或外部的SSMS插件。