如何在临时表中选择临时表

时间:2016-03-31 08:18:27

标签: sql-server-2008 tempdb

目前,我有一些临时表作为这种格式"#A0089D2C","#A0232241"

如何选择它们以查看其数据是什么?

我尝试了以下查询:

Select * from #A0089D2C
Select * from tempdb.dbo.#A0089D2C

但是我得到了错误:

Database name 'tempdb' ignored, referencing object in tempdb.
Database name 'tempdb' ignored, referencing object in tempdb.
Msg 208, Level 16, State 0, Line 1
Invalid object name '#A0089D2C'.

请告知。

感谢。

2 个答案:

答案 0 :(得分:1)

从技术上讲,只有创建本地临时表的用户才能在范围内访问它。 这意味着,同一用户可以在同一范围内访问本地临时表(#表),而可以在所有用户之间访问全局临时表(## tables),直到引用该表的最后一个用户会话断开连接。 p>

您可以通过以下技巧检查表架构:

  • 右键单击Tempdb数据库
  • 任务>导出数据

enter image description here

  • 将源数据库保留为TempDb
  • 选择目的地(请记住:您无法传输数据)
  • 在选择源表和视图表单上,您将看到"编辑映射"。单击它以查看表结构

enter image description here

但是如果你真的很热衷于在临时表中查看数据,那么请查看Paul White撰写的这篇关于viewing another session's Temporary table的精彩帖子

答案 1 :(得分:0)

这应该有效,至少目前临时表是否存在。

Select * from tempdb.dbo.#A0089D2C

看,临时表就像薛定谔猫一样,它们存在并且它们不会在同一时间;)