zoukankan      html  css  js  c++  java
  • 使用SQL语句的子查询批量复制表数据

    批量复制表数据这里有两种方法,下面分别来介绍这两种方法:

    一、手动创建新表,然后复制数据

    如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本:

    QQ截图20130809154431

    然后在脚本中改改表名就可以了,这样就有了一张和原来一模一样的新表。

    · INSERT INTO SELECT

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

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

    QQ截图20130809155215

    图中是本例使用的源表的结构(当然目标表和它是一模一样的),因为目前复制的这张表含有主键,并且设为标识自动增长,所以在向新表插入数据时会发生不允许向标识列插入数据的错误,请参考文章:http://www.cnblogs.com/xwgli/p/3210928.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的设计就只有字段名、字段类型、是否为空与源表保持一致,主键外键等约束会消失,需要自行手动添加。

    QQ截图20130809155857

    以上就是两种批量复制数据的SQL语句。

  • 相关阅读:
    mvc生成table
    JQ仿ebay右侧flash商品展示
    调查一下,EF的Bug?
    SpringCloud组件Zuul入门解析
    SpringCloud组件Ribbon入门解析
    FTO介绍
    算法网址收藏
    哈拂大学凌晨四点的景象
    【系统学习ES6】第二节:解构赋值
    MySQL高级
  • 原文地址:https://www.cnblogs.com/xwgli/p/3248470.html
Copyright © 2011-2022 走看看