3

目前,我有一些临时表,格式为“#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'.

请指教。

谢谢。

4

2 回答 2

3

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

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

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

在此处输入图像描述

  • 将源数据库保留为 TempDb
  • 选择目的地(记住:您不能传输数据)
  • 在选择源表和视图表单上,您将看到“编辑映射”。点击查看表结构

在此处输入图像描述

但是,如果您真的很想在临时表中查看数据,那么请查看Paul White关于查看另一个会话的临时表的精彩帖子

于 2016-05-18T12:31:26.700 回答
-1

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

Select * from tempdb.dbo.#A0089D2C

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

于 2016-03-31T08:29:05.857 回答