临时表最有可能是永久表。临时表在 TempDB 中创建,并在最后一个连接终止后自动删除。临时表帮助我们存储和处理中间结果。当我们需要存储临时数据时,临时表非常有用。创建临时表的语法如下:
创建临时表:
CREATE TABLE #EmpDetails (id INT, name VARCHAR(25))
将值插入临时表:
INSERT INTO #EmpDetails VALUES (01, 'Lalit'), (02, 'Atharva')
从临时表中选择值:
SELECT * FROM #EmpDetails
结果:
id | name |
---|---|
1 | Lalit |
2 | Atharva |
有两种类型的临时表:本地临时表和全局临时表。这些解释如下。
- 本地临时表:
本地临时表仅可用于创建它的会话。当创建它的连接关闭时,它会自动删除(删除)。创建本地临时表 单个“#”用作表名的前缀。此外,用户可以使用“DROP TABLE #EmpDetails”查询删除此临时表。将随机数附加到表名称的名称。如果临时表是在存储过程中创建的,它会在存储过程执行完成后自动删除。
例子:
CREATE PROCEDURE ProcTemp AS BEGIN CREATE TABLE #EmpDetails INSERT INTO #EmpDetails VALUES ( 01, 'Lalit'), ( 02, 'Atharva') SELECT * FROM #EmpDetails END EXECUTE ProcTemp
- 全局临时表:
要创建全局临时表,请在表名前添加“##”符号。例子:
CREATE TABLE ##EmpDetails (id INT, name VARCHAR(25))
全局临时表对所有连接可见,并在最后一个引用该表的连接关闭时被丢弃。全局表名必须有一个唯一的表名。表名末尾不会有随机数的后缀。