SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

做数据库开发的过程中难免会遇到有表数据备份的,而select into……和insert into select…… 这两种语句就是用来进行表数据复制,下面简单的介绍下:

1、insert into select

语句格式:insert into table2(column1,column2……) select value1,value2,value3,value4 from table1 或 insert into table2 select * from table1

说明:这种方式的表复制必须要求table2是事先创建好的

例:

--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

create table table2
(
    a varchar(10),
    c varchar(10),
    d varchar(10)
);
commit;
--2.创建测试数据
insert into table1 values('赵','asds','90');
insert into table1 values('钱','asds','100');
insert into table1 values('孙','asds','80');
insert into table1 values('李','asds',null);
commit;
--3.复制table1数据到table2中
insert into table2(a, c, d) select a,b,c from table1;
commit;
--或,此种方式必须要求table2和table1的列数相等,而且类型兼容
insert into table2 select * from table1;
commit;

以上这些sql在oracle和ms sqlserver中的语法是一样的,可以通用.

2、select into……

这种方式的语句可以在table2不存在的时候进行表数据复制,编译器会根据table1的表结构自动创建table2,table2和table1的结构基本上是一致的,但是如果已经存在table2,则编译器会报错.

这种方式的语句在oracle中和ms sqlserver中是有点差别的,,如下:

语句格式:

oracle:create table2 as select column1,column2……from table1 或 create table2 as select * from table1

ms sqlserver:select column1,column2…… into table2 from table1 或 select * into table2 from table1

例:

--oracle
--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--2.创建测试数据
insert into table1 values('赵','asds','90');
insert into table1 values('钱','asds','100');
insert into table1 values('孙','asds','80');
insert into table1 values('李','asds',null);
commit;
--3.复制table1数据到table2中
create table table2 as select a,b,c from table1;
commit;
--或(这两种方式的sql只能应用一次)
create table table2 as select * from table1;
commit;
--删除表
drop table table1;
drop table table2;
commit;
--ms sqlserver
--1.创建表
create table table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--2.创建测试数据
insert into table1 values('赵','asds','90');
insert into table1 values('钱','asds','100');
insert into table1 values('孙','asds','80');
insert into table1 values('李','asds',null);
commit;
--3.复制table1数据到table2中
select a,b,c into table2 from table1;
commit;
--或(这两种方式的sql只能应用一次)
select * into table2 from table1;
commit;
--删除表
drop table table1;
drop table table2;
commit;

到此这篇关于sql server之select into 和 insert into select案例详解的文章就介绍到这了,更多相关sql server之select into 和 insert into select内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐