首页 文章

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

提问于
浏览
164

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

enter image description here

9 回答

  • 0

    只需使用select查询来显示表varialble,您想要检查的位置 .

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

  • 32

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

  • -1

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

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

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

    enter image description here

  • -3

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

    用法:

    exec sp_select 'tempDb..#myTempTable'
    

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

  • 6

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

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

  • 14

    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
    
  • 278

    为什么不选择表并以这种方式查看变量?

    SELECT * FROM @d
    
  • 0

    对不起,伙计们,我参加聚会的时间有些晚了,但是对于那些在以后偶然发现这个问题的人,我发现在存储过程中执行此操作的最简单方法是:

    • 使用在顶部声明和初始化的任何过程参数创建一个新查询 .

    • 粘贴到您的程序正文中 .

    • 在使用数据初始化表变量后立即添加一个好的旧式选择查询 .

    • 如果3.不是过程中的最后一个语句,请在同一行上设置断点,开始调试并继续直接到断点 .

    • 利润!!

    messi19的答案应该是被接受的一个恕我直言,因为它比我的更简单,当时的工作 most ,但是如果你像我一样并且在你要检查的循环中有一个表变量,这很好地完成了工作没有太多的努力或外部SSMS插件 .

相关问题