• 【转】把一个表的数据插入到另一个表:INSERT INTO SELECT / SELECT INTO 拓荒者


    原文链接:http://www.it118.org/Specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/cf2a7ceb-1815-43fe-8810-47af11ac65a9.htm

    有两种方法可以是实现,而且不使用游标.下面两种方法性能远好于游标.

    1.INSERT INTO SELECT
    这种方法常用在目标表已经存在数据库中.需要从源表把数据插入到目标表的情况.如果目标表和源表的列相同,就不必列出数据列了.

    USE AdventureWorks 
    GO
    ----Create TestTable
    CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
    ----INSERT INTO TestTable using SELECT
    INSERT INTO TestTable (FirstName, LastName)
    SELECT FirstName, LastName
    FROM Person.Contact
    WHERE EmailPromotion = 2
    ----Verify that Data in TestTable
    SELECT FirstName, LastName
    FROM TestTable
    ----Clean Up Database
    DROP TABLE TestTable
    GO
    USE AdventureWorks
    GO
    ----Create TestTable
    CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
    ----INSERT INTO TestTable using SELECT
    INSERT INTO TestTable --(FirstName, LastName)
    SELECT FirstName, LastName
    FROM Person.Contact
    WHERE EmailPromotion = 2
    ----Verify that Data in TestTable
    SELECT FirstName, LastName
    FROM TestTable
    ----Clean Up Database
    DROP TABLE TestTable
    GO



    仔细看看有什么区别.

    2.SELECT INTO
    这种方法用在目标表事先不存在于数据库.在插入数据的同时新建表.新表的字段名和数据类型和需要插入的列相同.

    USE AdventureWorks 
    GO
    ----Create new table and insert into table using SELECT INSERT
    SELECT FirstName, LastName
    INTO TestTable
    FROM Person.Contact
    WHERE EmailPromotion = 2
    ----Verify that Data in TestTable
    SELECT FirstName, LastName
    FROM TestTable
    ----Clean Up Database
    DROP TABLE TestTable
    GO


    我也常用它来复制数据结构,但不插入数据.

    USE AdventureWorks 
    GO
    ----Create new table and insert into table using SELECT INSERT
    SELECT FirstName, LastName
    INTO TestTable
    FROM Person.Contact
    WHERE 1=2
    DROP TABLE TestTable
    GO



    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    从外部访问 Template (模板)的控件、获取它的属性值
    继续聊WPF——动态数据模板
    WPF数据模板样式选择器
    深入理解正则表达式
    nssm使用,安装服务、删除服务
    Windows删除某服务
    nssm设置solr开机启动服务
    Windows下直接双击可执行的jar
    Unsupported major.minor version 52.0——解决
    js延迟2秒执行事件
  • 原文地址:https://www.cnblogs.com/youring2/p/2434184.html
Copyright © 2020-2023  润新知