【问题标题】:Getting data of temp table while debugging调试时获取临时表数据
【发布时间】:2025-12-09 03:35:02
【问题描述】:

在调试时,我无法在 sql server 2012 中查看临时表的值。我正在获取所有变量值,甚至可以打印该值,但在处理临时表时遇到了困难。有什么方法可以查看临时表的值吗?。

【问题讨论】:

  • 调试什么?您的问题绝对不是 SQL Server,
  • 我已经创建了一个包含大量变量、临时表和事务的存储过程。我已经打印了我的变量作为检查点,当我执行我的程序时,我在 msg 窗口中得到了打印的值,但无法看看我的临时表包含什么值。

标签: sql-server


【解决方案1】:

SQL Server 提供了临时表的概念,极大地帮助了开发人员。这些表可以在运行时创建,可以做一张普通表可以做的各种操作。但是,根据表类型,范围是有限的。这些表是在 tempdb 数据库中创建的。

在调试的时候,你可以暂停SP,在你的SP中写select语句在DROP表语句之前,#表就可以查询了。

从#temp中选择*

【讨论】:

    【解决方案2】:

    我将这段代码放在我的存储过程中,我可以在“Locals”窗口中看到临时表的内容。

    INSERT INTO #temptable (columns) SELECT columns FROM sometable; -- populate your temp table
    -- for debugging, comment in production
    DECLARE @temptable XML = (SELECT * FROM #temptable FOR XML AUTO); -- now view @temptable in Locals window
    

    这适用于较旧的 SQL Server 2008,但较新的版本可能会支持更友好的 FOR JSON 对象。信用:https://*.com/a/6748570/1129926

    【讨论】:

      最近更新 更多