首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SSMS2008的调试会话中检查表变量和临时表?

如何在SSMS2008的调试会话中检查表变量和临时表?
EN

Stack Overflow用户
提问于 2010-12-10 20:15:14
回答 3查看 8.4K关注 0票数 2

我正在单步执行SQL Server Management Studio2008 (SSMS)中的存储过程。该代码创建了一些表变量以及临时的#表,我希望在执行过程中检查这些表。现在,我可以在“局部变量”窗口中看到其他局部变量,虽然在那里列出了表变量,但我看不到它们的内容。我还想检查# temp表,但同样,我想对它们运行的任何select语句都需要来自与我单步执行的代码相同的会话。

在SSMS2008调试器中这是可能的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-01 17:25:01

我构建了a procedure,它将显示来自另一个数据库连接的临时表的内容。(这在普通查询中是不可能的)。请注意,它使用DBCC页面&访问数据的默认跟踪,因此仅将其用于调试目的。

票数 12
EN

Stack Overflow用户

发布于 2010-12-10 22:44:21

这个问题与下面的问题基本相同:How to see the values of a table variable at debug time?

看起来简短的答案是:不!这在SSMS 2008中还没有实现。

请参阅Microsoft Connect上的这篇文章:SQL Debugging - All About Tables: Table Variables, #Temp, ##Global Temp, Source (Input) and Output Tables

票数 1
EN

Stack Overflow用户

发布于 2012-07-20 03:21:59

在一个复杂的proc中,我所做的就是将一个默认值为0的输入变量添加到我调用的@test变量的末尾。(通过这种方式,我不会中断对proc的任何现有调用)

然后,在我可能想要查看表变量或临时表的值的每个点上,我放入一条if语句,我甚至可能添加一列,这样我就知道我正在查看表的哪个点:

IF @test =1 BEGIN SELECT 'after field 3‘as TestStep,* FROM #temp END

现在它们只在测试模式下运行,我可以在两年后调试问题时看到我需要的任何东西。我还打印在测试模式下创建的任何动态SQl语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4408724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档