我们可以在调试时间内在SQL Server Management Studio(SSMS)中看到表值变量中的值(行和单元格)吗?如果有,怎么样?
只需使用select查询来显示表varialble,您想要检查的位置 .
http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/
我得出结论,如果没有任何插件,这是不可能的 .
根据此Microsoft Connect链接尚未实现:Microsoft Connect
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)
在要查看表的位置插入上述语句's contents. The table'的内容将在本地窗口中呈现为XML,或者您可以将 @v 添加到监视窗口 .
@v
该项目https://github.com/FilipDeVos/sp_select有一个存储过程 sp_select ,允许从临时表中进行选择 .
sp_select
用法:
exec sp_select 'tempDb..#myTempTable'
在调试存储过程时,您可以打开一个新选项卡并运行此命令以查看临时表的内容 .
在存储过程中,创建一个全局临时表## temptable,并在存储过程中写入一个插入查询,该查询将表中的数据插入到此临时表中 .
完成此操作后,您可以通过打开新的查询窗口来检查临时表的内容 . 只需使用“select * from ## temptable”
SQL Server Profiler 2014列出了表值参数的内容 . 也可能在以前的版本中工作 . 启用SP:启动或RPC:Stored Procedures组和TextData列中的已完成事件,当您单击日志中的条目时,您将拥有表变量的insert语句 . 然后,您可以复制文本并在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
为什么不选择表并以这种方式查看变量?
SELECT * FROM @d
对不起,伙计们,我参加聚会的时间有些晚了,但是对于那些在以后偶然发现这个问题的人,我发现在存储过程中执行此操作的最简单方法是:
使用在顶部声明和初始化的任何过程参数创建一个新查询 .
粘贴到您的程序正文中 .
在使用数据初始化表变量后立即添加一个好的旧式选择查询 .
如果3.不是过程中的最后一个语句,请在同一行上设置断点,开始调试并继续直接到断点 .
利润!!
messi19的答案应该是被接受的一个恕我直言,因为它比我的更简单,当时的工作 most ,但是如果你像我一样并且在你要检查的循环中有一个表变量,这很好地完成了工作没有太多的努力或外部SSMS插件 .
9 回答
只需使用select查询来显示表varialble,您想要检查的位置 .
http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/
我得出结论,如果没有任何插件,这是不可能的 .
根据此Microsoft Connect链接尚未实现:Microsoft Connect
在要查看表的位置插入上述语句's contents. The table'的内容将在本地窗口中呈现为XML,或者您可以将
@v
添加到监视窗口 .该项目https://github.com/FilipDeVos/sp_select有一个存储过程
sp_select
,允许从临时表中进行选择 .用法:
在调试存储过程时,您可以打开一个新选项卡并运行此命令以查看临时表的内容 .
在存储过程中,创建一个全局临时表## temptable,并在存储过程中写入一个插入查询,该查询将表中的数据插入到此临时表中 .
完成此操作后,您可以通过打开新的查询窗口来检查临时表的内容 . 只需使用“select * from ## temptable”
SQL Server Profiler 2014列出了表值参数的内容 . 也可能在以前的版本中工作 . 启用SP:启动或RPC:Stored Procedures组和TextData列中的已完成事件,当您单击日志中的条目时,您将拥有表变量的insert语句 . 然后,您可以复制文本并在Management Studio中运行 .
样本输出:
为什么不选择表并以这种方式查看变量?
对不起,伙计们,我参加聚会的时间有些晚了,但是对于那些在以后偶然发现这个问题的人,我发现在存储过程中执行此操作的最简单方法是:
使用在顶部声明和初始化的任何过程参数创建一个新查询 .
粘贴到您的程序正文中 .
在使用数据初始化表变量后立即添加一个好的旧式选择查询 .
如果3.不是过程中的最后一个语句,请在同一行上设置断点,开始调试并继续直接到断点 .
利润!!
messi19的答案应该是被接受的一个恕我直言,因为它比我的更简单,当时的工作 most ,但是如果你像我一样并且在你要检查的循环中有一个表变量,这很好地完成了工作没有太多的努力或外部SSMS插件 .