Select Into & Insert Select 常用于将一个老表的数据放到另一个地方。
准备工作
-- 源数据表
create table #Source(id varchar(20) not null primary key,description varchar(60));
-- 待插入的表
create table #Target(id varchar(20),description varchar(60),other varchar(10) );
-- 往源表里插入测试数据
DECLARE @counter int;
SET @counter = 10;
--插入一点数据
WHILE(@counter>0)
BEGIN
INSERT into #Source VALUES(@counter,'来源表说明'+cast( @counter as varchar(20)));
SET @counter = @counter-1;
END
1 目标表已经存在
-- 用insert table(字段)select id from @Source
INSERT #Target(id) select id from #Source
SELECT * FROM #Target
/* 结果数据
1 NULL NULL
10 NULL NULL
2 NULL NULL
3 NULL NULL
4 NULL NULL
5 NULL NULL
6 NULL NULL
7 NULL NULL
8 NULL NULL
9 NULL NULL
*/
2 目标表不存在
-- 目标表不存在
--SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SELECT * INTO #tmp FROM #Source
SELECT * FROM #tmp
/*
1 来源表说明
10 来源表说明
2 来源表说明
3 来源表说明
4 来源表说明
5 来源表说明
6 来源表说明
7 来源表说明
8 来源表说明
9 来源表说明
*/