select * into 目标表名 from 源表名
insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名

以上两句都是将'源表'的数据插入到'目标表',但两句又有区别的:

第一句(select into from)要求目标表不存在,因为在插入时会自动创建。

第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表的字段外,还可以插入常量,如例中的:5。

示例

目前有数据如下:

现在要将id为2的数据复制一条到表中,可用如下语句:

insert into test select * from test where id=2;

结果如图:

现在要将id为2的数据都复制到表中,同时把其 name 的值改为 'f',可用如下语句:

insert into test(id,name) select id,'f' from test where id=2

结果如图:


对此,我们就可以扩充下,目前有数据如下:

1:复制表结构及数据到新表

SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名

我们把表 test 的结构和数据复制到新表 test1:

SELECT * INTO test1 FROM test

结果如下:

2.备份表的一部分列(不写*而写出列的列表)

SELECT 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名

我们把表 test1 列 id,name 的数据复制到 test2:

SELECT id,name INTO test2 FROM test1

结果如下:

3.备份表的一部分行(加 WHERE 条件)

SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件

我们把 id 为1的数据从test2复制到 test3:

SELECT * INTO test3 FROM test2 WHERE id = 1

结果如下:

4.备份表的一部分列(不写*而写出列的列表)和一部分行(加WHERE条件)

SELECT 列名1,列名2,列名3 INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件

我们把在 id 大于0 时,数据表 test1 的列 id,age 的数据复制到 test4:

SELECT id,age INTO test4 FROM test1 WHERE id > 0

结果如下:

5.只复制表的结构

这种情况,我们只要设置查询条件不成立即可。我们把表 test1 的表结构复制到新表 test5:

SELECT * INTO test5 FROM test1 WHERE 1=2

结果如下:

6.复制的结构数据来源于多个表

其实我们要多个表的查询结构作为一个数据源就行了,我们先看看表 test2 和 test4 目前的结果和数据:

然后我再把 id 相同下的 id,name,age 数据复制到新表 test6:

SELECT id,name,age INTO test6 FROM (SELECT test2.id,name,age FROM test2 INNER JOIN test4 ON test2.id = test4.id) as a

结果如下:

最新文章

  1. oracle打补丁
  2. Swift - 进度条(UIProgressView)的用法
  3. zw版·全程图解Halcon控件安装(delphi2007版)
  4. another app is currently holding the yum lock;waiting for it to exit解决
  5. ubuntu忘记密码,忘记root密码的解决方法
  6. [Android学习笔记]继承自ViewGroup的控件的过程学习
  7. 语义化标签SEO
  8. 模仿快递路线图的html, css 样式
  9. Django的CBV和FBV
  10. Codeforces Round #430 (Div. 2) D. Vitya and Strange Lesson
  11. Shiro框架配置-applicationContext里面的(仅提供借鉴)
  12. C++程序设计方法3:对象组合
  13. nginx配置详细解析
  14. Linux 操作系统下为网卡配置ip
  15. Logging模块 + traceback模块 + importlib模块 + requests模块
  16. python os.path.splitext()
  17. linux svn客户端通过 https访问windows VisualSVN Server Manager
  18. stringBuffer和stringBulider的区别
  19. Python 爬虫入门之爬取妹子图
  20. SPSS数据类型:测量字段、角色字段

热门文章

  1. python中二维数组的建立,输入和输出
  2. 06.yield
  3. maven 使用idea运行按钮install
  4. centos 6.5 安装 zookeeper
  5. JVM&GC
  6. PHP发送公众号模板消息
  7. Java中如何修改Jar中的内容
  8. thinkphp生成二维码
  9. teradata在虚拟机安装客户端sql Assistant
  10. Xcode5 统计单元测试覆盖率(仅限XCTest)