MsSql

关注公众号 jb51net

关闭
首页 > 数据库 > MsSql > SQL创建临时表

SQL创建临时表的两种方法

作者:箬敏伊儿

在SQL中,创建临时表的方法主要有两种:使用WITH子句和CREATETEMPORARYTABLE语句,适用于需要在多个查询或整个会话中使用的场景,选择合适的方法取决于临时表的使用需求和持久性要求,感兴趣的可以了解一下

在 SQL 中,创建临时表可以有多种方法,取决于你想要实现的功能和数据库的类型。以下是两种常见的方法:

1. 使用 WITH 子句(常用于 CTE,公用表表达式)

如果你不需要在多个查询中重复使用临时表,并且只是想在一个查询中使用中间结果,可以使用 WITH 子句。这种方法不会真正创建物理临时表,而是生成一个临时的结果集。

WITH temp AS (
    SELECT column1, column2
    FROM original_table
    WHERE conditions
)
SELECT *
FROM temp
WHERE other_conditions;

2. 使用 CREATE TEMPORARY TABLE

如果你需要创建一个在整个会话中都可以使用的临时表,可以使用 CREATE TEMPORARY TABLE 语句。这会创建一个物理上的临时表,存储在会话或连接的内存中,通常在会话结束时自动删除。

CREATE TEMPORARY TABLE temp_table AS
SELECT column1, column2
FROM original_table
WHERE conditions;

-- 然后可以在会话中随时使用 temp_table
SELECT *
FROM temp_table
WHERE other_conditions;

什么时候使用 WITH 子句 vs. CREATE TEMPORARY TABLE

根据你的需求,选择合适的方法来创建临时表。

查询临时表

select * from #临时表名;
select * from ##临时表名;

删除临时表

drop table #临时表名;
drop table ##临时表名;

使用说明

drop table #Tmp   --删除临时表#Tmp
create table #Tmp --创建临时表#Tmp
(
    ID   int IDENTITY (1,1)     not null, --创建列ID,并且每次新增一条记录就会加1
    WokNo                varchar(50),   
    primary key (ID)      --定义ID为临时表#Tmp的主键      
);
Select * from #Tmp    --查询临时表的数据
truncate table #Tmp --清空临时表的所有数据和约束

example

IF object_id('tempdb..#jimmy') is not NULL BEGIN
DROP TABLE #jimmy;
END
SELECT * 
INTO #jimmy
FROM table
WHERE 1=1

到此这篇关于SQL创建临时表的两种方法的文章就介绍到这了,更多相关SQL创建临时表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文