2013-12-13 72 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

相關問題