使用SQL语句的子查询批量复制表数据
2013-08-09 16:00
253 查看
批量复制表数据这里有两种方法,下面分别来介绍这两种方法:
一、手动创建新表,然后复制数据
如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本:
然后在脚本中改改表名就可以了,这样就有了一张和原来一模一样的新表。
· INSERT INTO SELECT
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
说明:要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
图中是本例使用的源表的结构(当然目标表和它是一模一样的),因为目前复制的这张表含有主键,并且设为标识自动增长,所以在向新表插入数据时会发生不允许向标识列插入数据的错误,请参考文章:/article/5070125.html。
一、手动创建新表,然后复制数据
如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本:
然后在脚本中改改表名就可以了,这样就有了一张和原来一模一样的新表。
· INSERT INTO SELECT
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
说明:要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
图中是本例使用的源表的结构(当然目标表和它是一模一样的),因为目前复制的这张表含有主键,并且设为标识自动增长,所以在向新表插入数据时会发生不允许向标识列插入数据的错误,请参考文章:/article/5070125.html。
本例的SQL语句即为:
insert into Categories2([CategoryID],[CategoryName],[Description],[Picture]) select * from Categories
二、直接复制数据,在复制过程中自动创建新表
· SELECT INTO FROM语句形式为:SELECT vale1, value2,… into Table2 from Table1 说明:要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。 同样还是上一张表为例,SQL语句:select * into Categories3 from Categories但此时新表Categories3的设计就只有字段名、字段类型、是否为空与源表保持一致,主键外键等约束会消失,需要自行手动添加。
以上就是两种批量复制数据的SQL语句。
相关文章推荐
- 在SqlServer中如何使用Sql语句将一张表的数据复制到另一张表
- 复制表结构和数据SQL语句
- 使用SQL语句中between and查询数据出错
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- 使用sql语句查询日期在一定时间内的数据
- 使用SQL语句对重复记录查询、统计重复次数、删除重复数据
- 使用SQL语句清空数据库所有表的数据
- 使用SQL语句创建数据窗口
- 使用SQL语句清空数据库所有表的数据(转)
- 【PB】使用参数指定的SQL语句向指定的下拉列表框中添加数据
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
- MySQL心得8-2-使用SQL语句备份和恢复表数据(非重点)
- 复制表结构和数据SQL语句
- 复制表数据的SQL语句
- 使用SQL语句清空数据库所有表的数据
- 使用sql语句导入/导出 数据为Excel
- MYSQL5.0 脚本测试笔记【复制表结构和数据SQL语句】
- 在sql server中,如何使用一条语句实现将表1中的数据复制到表2中
- 使用sql语句查询日期在一周内的数据
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例