【发布时间】:2020-11-13 17:28:38
【问题描述】:
#TempTable 和 TempDb.dbo.TembName 之间的主要区别是什么。因为它们在一天结束时都是临时表。那么我为什么要使用一个而不是另一个呢?
【问题讨论】:
-
#TempTable 也在 TempDB 中创建并持续存在直到它被删除。
标签: sql-server tsql stored-procedures temp-tables
#TempTable 和 TempDb.dbo.TembName 之间的主要区别是什么。因为它们在一天结束时都是临时表。那么我为什么要使用一个而不是另一个呢?
【问题讨论】:
标签: sql-server tsql stored-procedures temp-tables
没有性能差异。 #TempTable 仅对单个会话可见,并在会话结束时自动删除(如果在顶级批处理中创建),或者在批处理或存储过程结束时(如果在嵌套批处理或存储过程中创建) )。 tempdb 中的常规表对所有会话都是可见的,并且在服务器重新启动之前不会自动删除。
【讨论】:
性能没有任何区别,但 #temp 表在用户会话结束时被清空(在许多情况下,架构保留在 SQL Server 2005 的缓存中),而普通表保留在 TempDB 中,直到您重新启动 istance 或手动删除它。
临时表和表变量之间存在许多差异。 两者都在 TempDB 中(以消除一些误解)但是:
【讨论】: