请选择 进入手机版 | 继续访问电脑版

[MsSql] SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

[复制链接]
查看197 | 回复32 | 2021-9-17 11:45:02 | 显示全部楼层 |阅读模式

做数据库开辟 的过程中不免 会碰到 有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来举行 表数据复制,下面简单的先容 下:

1、INSERT INTO SELECT

  1. 语句格式:Insert Into Table2(column1,column2……) Select value1,value2,value3,value4 From Table1 或<span style="background-color: initial;"> Insert Into Table2 Select * From Table1</span>
复制代码

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

例:

  1. --1.创建表
  2. create TABLE Table1
  3. (
  4. a varchar(10),
  5. b varchar(10),
  6. c varchar(10)
  7. ) ;
  8. create TABLE Table2
  9. (
  10. a varchar(10),
  11. c varchar(10),
  12. d varchar(10)
  13. );
  14. commit;
  15. --2.创建测试数据
  16. Insert into Table1 values('赵','asds','90');
  17. Insert into Table1 values('钱','asds','100');
  18. Insert into Table1 values('孙','asds','80');
  19. Insert into Table1 values('李','asds',null);
  20. commit;
  21. --3.复制table1数据到table2中
  22. Insert into Table2(a, c, d) select a,b,c from Table1;
  23. commit;
  24. --或,此种方式必须要求table2和table1的列数相等,而且类型兼容
  25. Insert into Table2 select * from table1;
  26. commit;
复制代码

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

2、SELECT INTO……

这种方式的语句可以在Table2不存在的时间 举行 表数据复制,编译器会根据Table1的表布局 主动 创建Table2,Table2和Table1的布局 基本上是同等 的,但是假如 已经存在Table2,则编译器会报错.

这种方式的语句在Oracle中和MS SqlServer中是有点差别的,,如下:

语句格式:

  1. Oracle:Create Table2 as Select column1,column2……From Table1 或 Create Table2 as Select * From Table1
  2. MS SqlServer:Select column1,column2…… into Table2 From Table1 或 Select * into Table2 From Table1
复制代码

例:

  1. --Oracle
  2. --1.创建表
  3. create TABLE Table1
  4. (
  5. a varchar(10),
  6. b varchar(10),
  7. c varchar(10)
  8. ) ;
  9. commit;
  10. --2.创建测试数据
  11. Insert into Table1 values('赵','asds','90');
  12. Insert into Table1 values('钱','asds','100');
  13. Insert into Table1 values('孙','asds','80');
  14. Insert into Table1 values('李','asds',null);
  15. commit;
  16. --3.复制table1数据到table2中
  17. Create Table Table2 as select a,b,c From table1;
  18. Commit;
  19. --或(这两种方式的sql只能应用一次)
  20. Create table table2 as select * From Table1;
  21. Commit;
  22. --删除表
  23. drop table table1;
  24. drop table table2;
  25. commit;
复制代码
  1. --MS SqlServer
  2. --1.创建表
  3. create TABLE Table1
  4. (
  5. a varchar(10),
  6. b varchar(10),
  7. c varchar(10)
  8. ) ;
  9. commit;
  10. --2.创建测试数据
  11. Insert into Table1 values('赵','asds','90');
  12. Insert into Table1 values('钱','asds','100');
  13. Insert into Table1 values('孙','asds','80');
  14. Insert into Table1 values('李','asds',null);
  15. commit;
  16. --3.复制table1数据到table2中
  17. Select a,b,c into Table2 From table1;
  18. Commit;
  19. --或(这两种方式的sql只能应用一次)
  20. Select * into table2 From Table1;
  21. Commit;
  22. --删除表
  23. drop table table1;
  24. drop table table2;
  25. commit;
复制代码

到此这篇关于SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解的文章就先容 到这了,更多干系 SQL Server之SELECT INTO 和 INSERT INTO SELECT内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 123457595 | 2021-9-18 07:40:06 | 显示全部楼层
怎么我回帖都没人理我呢?
回复

使用道具 举报

avatar poney | 2021-9-20 22:19:10 | 显示全部楼层
精神病院在通缉admin楼主!
回复

使用道具 举报

avatar 掌舵的鱼1987 | 2021-9-21 07:06:12 | 显示全部楼层
白富美?高富帅?
回复

使用道具 举报

avatar 强绝商爸摇 | 2021-9-21 15:24:42 | 显示全部楼层
这么好的帖子,应该加精华!
回复

使用道具 举报

avatar 123457067 | 2021-9-23 10:18:06 | 显示全部楼层
楼上长在线啊?
回复

使用道具 举报

avatar 更强 | 2021-9-23 19:02:02 | 显示全部楼层
admin楼主是男的还是女的?
回复

使用道具 举报

avatar ty实话实说2017 | 2021-9-23 19:02:05 | 显示全部楼层
禽兽不如应该不是说admin楼主的的吧?
回复

使用道具 举报

avatar 恶贯满瘾锥 | 2021-9-24 01:29:22 | 显示全部楼层
很有看点!
回复

使用道具 举报

avatar 123457373 | 2021-9-24 19:25:00 | 显示全部楼层
一口气看完了,我要下去回味回味了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则