設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

【技巧】兩種表插入或復(fù)制數(shù)據(jù)的語句SELECT INTO 和 INSERT INTO SELECT 的介紹與區(qū)別

2015-4-11 20:50| 發(fā)布者: admin| 查看: 2012| 評論: 2|原作者: admin

摘要: 最近也在對比使用兩種表插入或復(fù)制數(shù)據(jù)的語句SELECT INTO 和 INSERT INTO SELECT 的異同,自己也做了不少測試與試驗。感覺 這兩種方式各有好處和缺點,大家也可對比一下,以下是從網(wǎng)站搜索的相關(guān)文章。同時適用Acces ...
最近也在對比使用兩種表插入或復(fù)制數(shù)據(jù)的語句SELECT INTO 和 INSERT INTO SELECT 的異同,自己也做了不少測試與試驗。感覺 這兩種方式各有好處和缺點,大家也可對比一下,以下是從網(wǎng)站搜索的相關(guān)文章。同時適用Access與Sql server
Insert是T-sql中常用語句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應(yīng)用程序開發(fā)中必不可少。但我們在開發(fā)、測試過程中,經(jīng)常會遇到需要表復(fù)制的情況,如將一個table1的數(shù)據(jù)的部分字段復(fù)制到table2中,或者將整個table1復(fù)制到table2中,這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復(fù)制語句了。
      1.INSERT INTO SELECT語句
      語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
      要求目標(biāo)表Table2必須存在,由于目標(biāo)表Table2已經(jīng)存在,所以我們除了插入源表Table1的字段外,還可以插入常量。示例如下:

   --1.創(chuàng)建測試表
    create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]

    create TABLE Table2
    (
        a varchar(10),
        c varchar(10),
        d int,
        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO
    --2.創(chuàng)建測試數(shù)據(jù)
    Insert into Table1 values('趙','asds','90')
    Insert into Table1 values('錢','asds','100')
    Insert into Table1 values('孫','asds','80')
    Insert into Table1 values('李','asds',null)
    GO
    select * from Table2

    --3.INSERT INTO SELECT語句復(fù)制表數(shù)據(jù)
    Insert into Table2(a, c, d) select a,c,5 from Table1
    GO

    --4.顯示更新后的結(jié)果
    select * from Table2
    GO
    --5.刪除測試表
    drop TABLE Table1
    drop TABLE Table2

      2.SELECT INTO FROM語句
      語句形式為:SELECT vale1, value2 into Table2 from Table1
      要求目標(biāo)表Table2不存在,因為在插入時會自動創(chuàng)建表Table2,并將Table1中指定字段數(shù)據(jù)復(fù)制到Table2中。示例如下:

   --1.創(chuàng)建測試表
    create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO

    --2.創(chuàng)建測試數(shù)據(jù)
    Insert into Table1 values('趙','asds','90')
    Insert into Table1 values('錢','asds','100')
    Insert into Table1 values('孫','asds','80')
    Insert into Table1 values('李','asds',null)
    GO

    --3.SELECT INTO FROM語句創(chuàng)建表Table2并復(fù)制數(shù)據(jù)
    select a,c INTO Table2 from Table1
    GO

    --4.顯示更新后的結(jié)果
    select * from Table2
    GO
    --5.刪除測試表
    drop TABLE Table1
    drop TABLE Table2


發(fā)表評論

最新評論

引用 風(fēng)中漫步 2015-4-12 09:23
謝謝分享
引用 寄憂谷 2015-5-15 01:27
請問復(fù)制table1的一行數(shù)據(jù)到table2怎么實現(xiàn)呢,兩張表的字段一樣的

查看全部評論(2)

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 05:58 , Processed in 0.221980 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部