让我们说,我有两个表格相同,但数据不同
Table_A
和Table_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
,其中ID
和Number
列数据相等。
执行脚本后,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。
答案 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
。