sql脚本将表的列数据导出到另一个表的列

时间:2013-12-13 08:12:19

标签: sql-server-2008-r2

让我们说,我有两个表格相同,但数据不同 Table_ATable_B

Table_A
--------
ID(p_key)     Number(p_key)         Column3     Column4
-----------------------------------------------------
ID1                1                  AAA         BBB
ID1                2                  CCC         DDD
ID2                1                  EEE         FFF
ID2                2                  GGG         HHH

-

Table_B
--------
ID(p_key)     Number(p_key)         Column3     Column4
-----------------------------------------------------
ID1                1                  AAA_1       BBB_1
ID1                2                  CCC_1       DDD_1
ID2                1                  EEE_1       FFF_1
ID2                2                  GGG_1       HHH_1

我想将{覆盖} Table_B column3数据导出到Table_A column3,其中IDNumber列数据相等。
执行脚本后,Table_A的数据应为

 Table_A
    --------
    ID(p_key)     Number(p_key)         Column3     Column4
    -----------------------------------------------------
    ID1                1                  AAA_1        BBB
    ID1                2                  CCC_1        DDD
    ID2                1                  EEE_1        FFF
    ID2                2                  GGG_1        HHH

如何仅使用sql脚本进行此操作? 我使用的是MS SQL-Server 2008 R2。

1 个答案:

答案 0 :(得分:1)

UPDATE TBLA
    SET TBLA.Column3=TBLB.Column3 --, TBLA.Column4=TBLB.Column4 if you want
FROM
    Table_A AS TBLA
    LEFT OUTER JOIN Table_B AS TBLB ON (TBLB.ID1 = TBLA.ID1 AND TBLB.ID2 = TBLA.ID2)

请注意'ID'列(即'主键')必须是唯一的(因为pkeys是:)。但是在执行之前要确定 - 我不知道您的确切表结构上面的代码,使用连接创建一个SELECT语句,如果结果集正确,则将其添加到UPDATE