调试 MS SQL 函数时查看临时表的数据

Posted

技术标签:

【中文标题】调试 MS SQL 函数时查看临时表的数据【英文标题】:View temporary table`s data when debugging an MS SQL Function 【发布时间】:2010-03-16 14:28:24 【问题描述】:

我目前正在调试一个 Ms SQL 函数 (SQL 2008)。

在这个函数中,我有一个这样声明的变量:

DECLARE @TempTable TABLE ( Id INT UNIQUE );

然后,我使用 insert into...select 语句插入一些记录。

调试的时候想看看这张表的记录。

有没有办法做到这一点?

谢谢

【问题讨论】:

好像是***.com/questions/1900857/…的副本 【参考方案1】:

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

您可以通过在代码中放置断点、打开第二个连接并调用来使用它:

exec sp_select 'tempdb..#mytable'

【讨论】:

【参考方案2】:

一种可能的解决方案(可能不是最好的)是:

创建与临时表相同的永久表 修改函数,使其将临时表中的数据转储到永久表中,其中临时表包含您有兴趣查看的数据

函数结束后,打开新的永久表,您将获得临时表状态的副本。

这需要你有创建新表和修改函数的权限。

【讨论】:

我害怕那个。我真的以为我可以在调试器中看到表格的内容。我会试试你的方法。

以上是关于调试 MS SQL 函数时查看临时表的数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 表变量和临时表的区别

查看或临时表 - 在 MS SQL Server 中使用哪个?

sql如何创建临时表

关于sqlserver临时表的问题,请教高手!

SQL server 查看什么语句在使用临时表

SQL中临时表和物理表的比较速度是多少?