调试时获取临时表数据
Posted
技术标签:
【中文标题】调试时获取临时表数据【英文标题】:Getting data of temp table while debugging 【发布时间】:2017-09-15 05:50:34 【问题描述】:在调试时,我无法在 sql server 2012 中查看临时表的值。我正在获取所有变量值,甚至可以打印该值,但在处理临时表时遇到了困难。有什么方法可以查看临时表的值吗?。
【问题讨论】:
调试什么?您的问题绝对不是 SQL Server, 我已经创建了一个包含大量变量、临时表和事务的存储过程。我已经打印了我的变量作为检查点,当我执行我的程序时,我在 msg 窗口中得到了打印的值,但无法看看我的临时表包含什么值。 【参考方案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
【讨论】:
以上是关于调试时获取临时表数据的主要内容,如果未能解决你的问题,请参考以下文章