今天天在工作中看到了一个业务要求,具体要求是这样的,根据一堆条件从一个表中查询出符合条件的ID,然后把这个ID插入到一张表中。

技术是使用iBaits和数据库连接,当时我的第一反应是两次查询,先得到ID,在更新。

但是在我看了例子之后,觉得例子实在是写的太好了。只是用了一条SQL语句。

这就是  INSERT INTO SELECT

      总结,写程序思想很重要,这就是思想!

在网上查了资料如下:

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将 一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用 SELECT INTO 和 INSERT INTO SELECT 表复制语句 了。

1. INSERT INTO SELECT 语句

语句形式为: Insert into Table2(field1,field2,...) select value1,value2,... from Table1

要求目标表Table2必须存在 ,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

INSERT INTO SELECT语句复制表数据

--1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] create TABLE Table2 ( a varchar(10), c varchar(10), d int, CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] GO --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) GO select * from Table2 --3.INSERT INTO SELECT语句复制表数据 Insert into Table2(a, c, d) select a,c,5 from Table1 GO --4.显示更新后的结果 select * from Table2 GO --5.删除测试表 drop TABLE Table1 drop TABLE Table2

2. SELECT INTO FROM 语句

语句形式为: SELECT vale1, value2 into Table2 from Table1

要求目标表Table2不存在 ,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。 示例如下:

SELECT INTO FROM创建表并复制表数据

--1.创建测试表 create TABLE Table1 ( a varchar(10), b varchar(10), c varchar(10), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] GO --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) GO --3.SELECT INTO FROM语句创建表Table2并复制数据 select a,c INTO Table2 from Table1 GO --4.显示更新后的结果 select * from Table2 GO --5.删除测试表 drop TABLE Table1 drop TABLE Table2

来源:http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 (以后在写SQL时,要有这种思想!!!)相关推荐

  1. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  2. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...

  3. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别...

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  4. PostgreSQL SELECT INTO和INSERT INTO SELECT 两种表复制语句

    SELECT INTO和INSERT INTO SELECT两种表复制语句都可以用来复制表与表之间的数据,但是它们之间也有区别. 建表语句: bas_custom_rel表 CREATE TABLE ...

  5. SELECT INTO 和 replace into SELECT 两种表复制语句

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...

  6. oracle中replace into,oracle SELECT INTO 和 replace into SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO和INSERT INTO ...

  7. insert into 的两种表复制插入方法

    insert into 语句除了基本的 insert into 表名(a,b,c)values(a1,b1,c1)外 . 还有更进一步的,从一个表复制其中全部字段数据或者是部分字段数据插入到另一个表中 ...

  8. oracle select into 多个,Oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    在Oracle中select into from不可以使用,用create tableselect代替该功能!!!在Sql Server中可以正常使用.1.INSERT INTOSELECT语句 语句 ...

  9. SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1b=2c=3d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外...

    SELECT INTO和INSERT INTO SELECT的区别 数据库中的数据复制备份 SELECT INTO: 形式: [sql] view plaincopyprint? SELECT val ...

最新文章

  1. Java的基本数据类型
  2. python 去除str的引号 去除括号_用python进行图像修复与去除水印
  3. python网站开发实例-【9】Python接口开发:flask Demo实例
  4. C#实现水晶报表绑定数据并实现打印
  5. Android IllegalStateException: The specified child already has a parent问题解决办法
  6. [html] 写一个三栏布局,中间固定,两边自适应(平均)
  7. 如何在SQL Server中发现和处理孤立的数据库用户
  8. 路由器上的lookback是什么?有什么作用?
  9. Word多级标题出现黑块的解决思路
  10. wap4410n 服务器上限修改,cisco wap4410n设置方法
  11. 按字段和行项目数量拆单
  12. Python自动化操作Excel绘制条形图!
  13. 计蒜客: 德克萨斯长角牛 (最短路)
  14. 为什么我建议你卸载“抖音”?
  15. 中间件 | Redis - [数据类型 指令]
  16. 解决cc2015到期后不能再次破解问题,及提供cutterman,Mark Man下载地址
  17. LabVIEW通信-CAN
  18. 云联惠案到底说明了什么?
  19. Windows环境 C++ 安装OpenCV-contrib
  20. 【开源电路】STM32F401RCT6开发板

热门文章

  1. 计算机科学与技术专业大学排名2020,2020计算机科学与技术专业最好大学排名:160余所大学上榜...
  2. uniapp ios时间戳获取不到_uni-app打包编译成安卓及ios包并上传发布测试版
  3. valueOf()和toString()详解
  4. 分布式消息规范 OpenMessaging 1.0.0-preview 发布 1
  5. 和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程【转】
  6. Android 性能测试——Memory Monitor 工具
  7. Animator Controller 继承关系
  8. 7、编译安装LAMP之apache与PHP整合
  9. P2016 战略游戏[树形dp]
  10. Qt5.9一个简单的多线程实例(类QThread)(第一种方法)