如何在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
对不起,伙计们,我晚了一点,但对于任何人在晚些时候遇到这个问题,我发现存储过程中最简单的方法是:
- 创build一个新的查询,并在顶部声明和初始化任何过程参数。
- 粘贴在你的程序的正文中。
- 在您的表variables用数据初始化后,立即添加一个好的旧式select查询。
- 如果3.不是过程中的最后一个语句,则在同一行上设置一个断点,开始debugging并直接进入断点。
- 利润!!
messi19的答案应该是被接受的答案,恕我直言,因为它比我的简单, 大多数时间做这项工作,但是如果你像我一样,并且在你想要检查的循环中有一个表variables,这个工作很好没有太多的努力或外部的SSMS插件。