简介

将查询语句查询的结果集作为数据插入到数据表中。

一、通过INSERT SELECT语句形式向表中添加数据

例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在学生表中,则可以从学生表中提取相关的数据插入建好的AddressList表中。

T-SQL语句如下:

insert into AddressList(姓名,地址,邮箱)
select name,address,email
from Students

 语法快记:该语句和常规的插入语句语法很相似,为了更好的记住语法,即可理解此插入语句把values替换成了查询语句。

使用该语句插入数据的注意事项:

  1.查询语句部分其中列的个数、顺序、数据类型必须与INSERT语句的指定列要保持一致,列名可以不相同。

  2.INSERT语句插入数据的表必须是预先创建好的。

INSERT SELECT语句形式中的查询部分不仅可以是单表,可以支持不同形式的查询语句,只要保证查询结果集的列和要插入数据的列是匹配的即可。

1.联接查询作为数据

insert into AddressList (name,address)
select a.UserName,b.address from SYSTEM_Users a
inner join BASE_Customer b on a.code=b.code

2.UNION合并多个结果集作为数据

insert into AddressList(name,address)
select '张三','洛杉矶'
union
select '李四','旧金山'
union
select '王五','华盛顿'

3.数据来自其他数据库(跨数据库插入) 

insert into StudentInfo(name)
select lxr FROM AgroDB.dbo.BASE_Customer

二、通过SELECT INTO语句形式将查询结果集的数据添加到新数据表

SELECT INTO语句形式的插入方式和INSERT INTO 语句形式插入方式有相同处和不同处。

相同:它们插入的数据都是来自SELECT查询结果集

不同:INSERT INTO 语句形式插入的数据表必须是预先创建,SELECT INTO语句形式的插入的数据表是在执行该语句时新创建的。

T-SQL语句如下:

select  name,address,email
into AddressList
from Students

语法快记:整体结构就是查询语句的结构,即在from关键字之上指派了INTO关键字加新数据表名。

语句执行逻辑:

  1.创建新数据表,新表的数据结构来自于查询语句指定的列。

  2.将查询结果集的信息插入到新表中,只会插入SELECT 中指派的列,列可以指定部分也可以全部。

SELECT INTO语句形式会执行插入数据和创建表两种命令,这样会延伸到一个新问题:如何给新表中指定一个标识列?

因为标识列的数据是自增的,因此我们可以在SELECT INTO语句中加入标识列的创建,语法如下:

select IDENTITY(int,1,1) as Aid ,Students.name,Students.address,Students.email
into AddressList
from Students

最新文章

  1. Spark性能优化-coalesce(n)
  2. c#中结构体(struct)和类(class)的区别
  3. UIImagePickerController之Block回调
  4. 3、Object对象的两大方法(hashCode-equals)总结
  5. EcTouch二次开发
  6. C#中HashTable的用法示例1
  7. C语言struct类型
  8. Barnicle
  9. TortoiseGit使用SSH
  10. 我JAVA修炼之路
  11. 请问:关于织梦dedecms点击导航上的父栏目进去默认显示第一个子栏目的列表的问题
  12. 玩转CSS3(二)---CSS3实现瀑布布局
  13. 一个 Vue & Node 的全栈小项目
  14. java中的锁之Lock接口与Condition接口
  15. var_export
  16. 20155229《网络对抗技术》Exp2:后门原理与实践
  17. USART相关问题
  18. 关于ROS证书导入的步骤
  19. ubuntu下pycharm快捷方式创建
  20. PostFix使用dovecot支持POP3/IMAP收信

热门文章

  1. springMVC添加supportedMediaType仍然中文乱码问题
  2. Bean Validation规范
  3. Storm1.0.6环境搭建
  4. shell命令——cut
  5. .4-浅析webpack源码之convert-argv模块
  6. [转]DevOps的三大原则
  7. MVC登录前准备写好cookie
  8. Mac 自带的Apache php 狼神的
  9. ADO.NET 【实体类】【数据访问类】
  10. HTML 常用标记