我想知道,在表部分创建表的临时数据库不同于创建哈希表。SQL临时数据库,临时表和表之间的区别
创建在临时DB
USE [tempdb]
GO
/****** Object: Table [dbo].[abc] Script Date: 2/14/2017 4:04:31 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[abc](
[id] [int] NULL,
[name] [nchar](10) NULL
) ON [PRIMARY]
GO
表创建一个哈希表
CREATE TABLE #abcd(
id INT,
name varchar(10)
)
INSERT INTO #abcd VALUES (1,'22')
难道这些表在临时DB和哈希表一样吗? 我的意思是这个普通表的行为像一个临时表,因为它已经在临时数据库中创建?
“如果它是在存储过程中创建的,一旦它超出范围,临时表将按计划清理。” - 不知道你在这里说什么。在存储过程中创建的临时表被明确记录为在存储过程返回时被删除。 –
@Damien_The_Unbeliever好的,这是我的理解中的一个缺陷,很好知道。 – Tanner
这里是我所指的[documentation](https://msdn.microsoft.com/en-us/library/ms174979.aspx)(查看Temporary Tables下的第一个项目符号) –