【问题标题】:MS SQL Temporary tableMS SQL 临时表
【发布时间】:2013-09-24 02:59:05
【问题描述】:

我想知道,这两个脚本有什么区别?

SELECT * FROM ##TEMP

还有这个

SELECT * FROM #TEMP

【问题讨论】:

标签: sql sql-server tsql temp-tables global-temp-tables


【解决方案1】:

##TEMP 是全局临时表,#TEMP 是本地表。

本地临时表仅对它们的创建者可见,在与 SQL Server 实例的同一连接期间,与表首次创建或引用时相同。用户断开与 SQL Server 实例的连接后,本地临时表将被删除。

全局临时表在创建后对任何用户和任何连接都是可见的,并且在引用该表的所有用户与 SQL Server 实例断开连接时被删除。

documentation

其实这里的问题和答案几乎是一样的——Local and global temporary tables in SQL Server

【讨论】:

  • @dave 添加了一些解释,查看非常相似问题的链接
【解决方案2】:

第一个 (##TEMP) 是全局的 - 任何人都可以访问它的内容,您也可以从不同的会话中访问(想想 SQL Server Management Studio 中的选项卡)。另一个只有您可以看到。

【讨论】:

    【解决方案3】:

    ## 是对所有人可见的全局表,并在所有引用它们的连接关闭时被删除。

    # 是本地表,仅对创建它的连接可见,并在该连接断开后被删除。

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2015-09-22
      • 2013-05-29
      相关资源
      最近更新 更多