我正在单步执行SQL Server Management Studio2008 (SSMS)中的存储过程。该代码创建了一些表变量以及临时的#表,我希望在执行过程中检查这些表。现在,我可以在“局部变量”窗口中看到其他局部变量,虽然在那里列出了表变量,但我看不到它们的内容。我还想检查# temp表,但同样,我想对它们运行的任何select语句都需要来自与我单步执行的代码相同的会话。
在SSMS2008调试器中这是可能的吗?
发布于 2011-08-01 17:25:01
我构建了a procedure,它将显示来自另一个数据库连接的临时表的内容。(这在普通查询中是不可能的)。请注意,它使用DBCC页面&访问数据的默认跟踪,因此仅将其用于调试目的。
发布于 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
发布于 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语句。
https://stackoverflow.com/questions/4408724
复制相似问题