【问题标题】:Where is #Temp Stored ? OR How is #temp Stored#Temp 存储在哪里?或 #temp 如何存储
【发布时间】:2013-10-03 04:34:26
【问题描述】:

我知道#temp 是临时的。表仅对特定会话有效。但是如果我在两个不同的会话中定义#temp,并同时运行它们会发生冲突。如果不是,那么这些表实际上是如何存储在内存中的。这和##Temp 有什么区别??????

【问题讨论】:

    标签: sql sql-server temp


    【解决方案1】:

    带有单个 # 的临时表是“本地的”,而带有双 ## 的临时表是“全局的”。

    一旦定义它们的存储过程完成,本地的将退出范围。

    全局变量可以被其他用户使用,或者被不同存储过程的同一用户使用,或者被同一过程的多次调用使用。只有在最后一个引用它们的用户不再引用它们之后,它们才会被删除,即在最后一个存储过程完成之后。

    全部存储在 tempdb 数据库中; “记忆”中没有。

    【讨论】:

      【解决方案2】:

      来自CREATE TABLE

      存储在 sysobjects 表中的临时表的全名 tempdb 由 CREATE TABLE 中指定的表名组成 语句和系统生成的数字后缀。

      所以它存储在 tempdb 中。

      同样来自Temporary Tables in SQL Server

      在 TempDB 中创建临时表和表变量 数据库

      【讨论】:

      • 好的,这意味着,即使我用相同的名称调用这些表,系统也会用不同的名称来识别它们??
      猜你喜欢
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2011-10-16
      • 2015-10-29
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多