#Temp存储在哪里?或者#temp如何存储

时间:2013-10-03 04:34:26

标签: sql sql-server temp

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

有何不同?

2 个答案:

答案 0 :(得分:2)

具有单个#的临时表是" local",而具有双##的临时表是" global"。

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

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

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

答案 1 :(得分:1)

来自CREATE TABLE

  

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

因此它存储在tempdb中。

同样来自Temporary Tables in SQL Server

  

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