2013-12-13 77 views
0

比方说,我有两个表格具有相同的模式但数据不同。
Table_ATable_Bsql脚本将表格的列数据导出到另一个表格的列

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列的数据相等。
脚本的执行后,表-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
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

相关问题