我知道#temp 是温度。表仅对特定会话有效。但是如果我在两个不同的会话中定义#temp,并同时运行它们会发生冲突。如果不是,那么这些表实际上是如何存储在内存中的。这与##Temp 有何不同????
问问题
82 次
2 回答
2
带有单个 # 的临时表是“本地的”,而带有双 ## 的临时表是“全局的”。
一旦定义它们的存储过程完成,本地的将退出范围。
全局的可以被其他用户使用,或者被不同存储过程的同一用户使用,或者被同一过程的多次调用使用。只有在最后一个引用它们的用户不再引用它们之后,它们才会被删除,即在最后一个存储过程完成之后。
全部存储在 tempdb 数据库中;“记忆”中没有。
于 2013-10-03T04:49:29.813 回答
1
从创建表
存储在tempdb中 sysobjects 表中的临时表的全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。
所以它存储在 tempdb 中。
在 TempDB 数据库中创建临时表和表变量
于 2013-10-03T04:36:35.937 回答