zoukankan      html  css  js  c++  java
  • SELECT INTO 和 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的字段外,还可以插入常量。示例如下:

     1    --1.创建测试表
     2     create TABLE Table1
     3     (
     4         a varchar(10),
     5         b varchar(10),
     6         c varchar(10),
     7         CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
     8         (
     9             a ASC
    10         )
    11     ) ON [PRIMARY]
    12 
    13     create TABLE Table2
    14     (
    15         a varchar(10),
    16         c varchar(10),
    17         d int,
    18         CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
    19         (
    20             a ASC
    21         )
    22     ) ON [PRIMARY]
    23     GO
    24     --2.创建测试数据
    25     Insert into Table1 values('','asds','90')
    26     Insert into Table1 values('','asds','100')
    27     Insert into Table1 values('','asds','80')
    28     Insert into Table1 values('','asds',null)
    29     GO
    30     select * from Table2
    31 
    32     --3.INSERT INTO SELECT语句复制表数据
    33     Insert into Table2(a, c, d) select a,c,5 from Table1
    34     GO
    35 
    36     --4.显示更新后的结果
    37     select * from Table2
    38     GO
    39     --5.删除测试表
    40     drop TABLE Table1
    41     drop TABLE Table2

    2.SELECT INTO FROM语句

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

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

     1 --1.创建测试表
     2     create TABLE Table1
     3     (
     4         a varchar(10),
     5         b varchar(10),
     6         c varchar(10),
     7         CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
     8         (
     9             a ASC
    10         )
    11     ) ON [PRIMARY]
    12     GO
    13 
    14     --2.创建测试数据
    15     Insert into Table1 values('','asds','90')
    16     Insert into Table1 values('','asds','100')
    17     Insert into Table1 values('','asds','80')
    18     Insert into Table1 values('','asds',null)
    19     GO
    20 
    21     --3.SELECT INTO FROM语句创建表Table2并复制数据
    22     select a,c INTO Table2 from Table1
    23     GO
    24 
    25     --4.显示更新后的结果
    26     select * from Table2
    27     GO
    28     --5.删除测试表
    29     drop TABLE Table1
    30     drop TABLE Table2
    View Code

    文章来自:http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html

  • 相关阅读:
    在日本被禁止的コンプガチャ設計
    Starling常见问题解决办法
    Flixel引擎学习笔记
    SQLSERVER中修复状态为Suspect的数据库
    T4 (Text Template Transformation Toolkit)实现简单实体代码生成
    创建Linking Server in SQL SERVER 2008
    Linq to Sql 与Linq to Entities 生成的SQL Script与分页实现
    Linq to Entity 的T4 模板生成代码
    在VisualStudio2008 SP1中调试.net framework 源代码
    使用HttpModules实现Asp.net离线应用程序
  • 原文地址:https://www.cnblogs.com/song_/p/3360849.html
Copyright © 2011-2022 走看看