如何查看sql server中代码创建的临时表?
Posted
技术标签:
【中文标题】如何查看sql server中代码创建的临时表?【英文标题】:How to see temp table created by code in sql server? 【发布时间】:2014-02-21 19:10:10 【问题描述】:我使用 C# 代码创建了一个全局临时表(即##TheTable
)。代码完全运行后,我希望能够在 SQL Server Management Studio 中看到该临时表。
可以这样做吗?如果是,那么如何?
【问题讨论】:
但是在代码完全运行之后,临时表就消失了。这就是他们称之为温度的原因。 狗仔队,代码运行后并非所有临时表都被删除。表变量通过这种方式被移除,但临时表不会在代码运行后自动移除。 【参考方案1】:所有临时表都记录在 SQL server > Databases > System Databases > tempdb -> Temporary Tables 下
【讨论】:
SQL server > 数据库 > 系统数据库 > tempdb -> 临时表 我在临时表下看不到任何临时表。 尝试在创建临时表后下断点,然后签入 SSMS。不要忘记刷新临时表文件夹,因为它不会自动更新。 ##tables 即使在连接/会话断开后也应该保留。 #tables 仅存在于它们所在的会话中。 我通过不关闭连接进行了尝试,但没有成功。我现在就试试断点。 好的。断点有效。但是,为什么在代码(没有断点)完全执行后我看不到临时表?如何在没有断点的情况下仍然可以看到临时表?【参考方案2】:代码完成并关闭会话后,临时表将不复存在。如果您想在 SQL Server Management Studio (SSMS) 中查看它,您需要保持代码会话打开,直到在 SSMS 中查看数据。
每Technet:
全局临时表对任何用户和任何连接都是可见的 创建后,当所有用户被删除时 引用表与 SQL Server 实例断开连接。
作为替代方案,这里有一个 C# 代码选项,可以将临时表中的数据选择到代码变量中,以便在代码中查看...(如果代码存在,您可以将其写入文件或通过其他方式查看)-- 请参阅:https://***.com/a/6748570/3063884
【讨论】:
【参考方案3】:创建测试表
SELECT * INTO ##temp1
FROM dbo.SomeTable_Name
现在检查表是否存在
SELECT * FROM tempdb.dbo.sysobjects O
WHERE O.xtype in ('U')
AND O.ID = OBJECT_ID(N'tempdb..##temp1')
【讨论】:
以上是关于如何查看sql server中代码创建的临时表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 中使用 Create 语句创建临时表?
SQL server2008 临时表tempdb如何自动释放存储空间