如何将select查询结果,插入临时表或者物理表?
1、创建一个临时表,用于演示sqlserver数据库中,如何在查询的同时,将结果存入临时表或者物理表汇总。本文以存入临时表为例进行演示
IF OBJECT_ID('tempdb..#tbl1') IS NOT NULL DROP TABLE #tbl1;
CREATE TABLE #tbl1(
Col1 varchar(50),
Col2 varchar(50),
Col3 int
);

2、创建另外一个临时表,用于存放查询的结果数据
IF OBJECT_ID('tempdb..#tbl2') IS NOT NULL DROP TABLE #tbl2;
CREATE TABLE #tbl2(
Col1 varchar(50),
Col2 varchar(50),
Col3 int,
Col4 varchar(100)
);

3、往临时表中1插入几行测试数据,模拟待查询的数据源
insert into #tbl1(Col1, Col2, Col3) values('行1列1', '行1列2', 10);
insert into #tbl1(Col1, Col2, Col3) values('行2列1', '行2列2', 20);
insert into #tbl1(Col1, Col2, Col3) values('行3列1', '行3列2', 30);
insert into #tbl1(Col1, Col2, Col3) values('行4列1', '行4列2', 40);
insert into #tbl1(Col1, Col2, Col3) values('行5列1', '行5列2', 50);

4、查询临时表1中的测试数据
select * from #tbl1;

5、将临时表1的所有结果查询出来,全部插入到临时表2,这个时候就可以使用insert into ...select的语法形式
insert into #tbl2(Col1, Col2, Col3)
select Col1, Col2, Col3
from #tbl1

6、查询临时表2中插入的数据,从结果可以看出,表1中的所有数据都插入到了表2中
select * from #tbl2;

7、假设演示中的临时表2,事先没有创建,或者,它是一个屋里表,如何将临时表1的数据插入过来呢?此处演示将临时表1的数据,插入不存在的临时表3。这样就相当于完全拷贝表和数据
select *
into #tbl3
from #tbl1
查询临时表3的数据
select * from #tbl3;
