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

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'.

请给予建议。
谢谢。

这是一个数据库权限错误吗? - SnakeFoot
嗨@SnakeFoot,我更新了问题并提供了详细的错误信息。谢谢。 - user3011414
2个回答

3

技术上讲,只有创建本地临时表的用户可以在其作用域内访问该表。这意味着,同一用户可以在同一作用域内访问本地临时表 (# tables),而全局临时表(## tables)可以被所有用户访问,直到最后一个引用该表的用户会话断开连接。

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

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

enter image description here

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

enter image description here

但是,如果您真的热衷于查看临时表中的数据,请查看Paul White关于查看另一个会话的临时表的精彩文章。


-1

这应该可以工作,至少在临时表此刻存在的情况下。

Select * from tempdb.dbo.#A0089D2C

你看,临时表就像薛定谔的猫,它们同时存在和不存在 ;)


嗨,SnakeFoot,我更新了问题并提供了详细的错误信息。谢谢。 - user3011414

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接