更新记录不存在的表

时间:2015-02-16 15:33:21

标签: sql-server

1-我们的“datamart”表中存在一些recor,但在源系统表中不再存在。

2-因此,我们希望将“未知”或0值硬编码到其中一些记录的列中(例如column1column2

3-这是我们参与的2个表:

Datamart.TableA

SourceSystem.TableB

4-我们想要UPDATE上面提到的Datamart.TableA表,以便在SourceSystem.TableB中不再存在的recors列中插入“Unknown”或0值

5-这就是我们的2个表的链接方式:

Datamart.TableA.Enumber = SourceSystem.TableB.Eid

Datamart.TableA.AccountNo = SourceSystem.TableB.AccountID

问题:

我有点想到我可能需要在我的代码中使用NOT EXISTS以及

Datamart.TableA.Eunmber = SourceSystem.TableB.Eid

Datamart.TableA.AccountNo = SourceSystem.TableB.AccountID

但是,我不太确定如何制定这一切。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

update DataMart.tableA
set    column1 = 0
from   DataMart.tableA a left join SourceSystem.TableB b on a.ENumber = b.Eid and a.AccountNo = b.AccountId
where  b.Eid is null

答案 1 :(得分:0)

您可以在NOT EXITS声明中使用UPDATE

UPDATE Datamart.TableA
SET column1 = 0, column2 = 0    
WHERE NOT EXISTS (SELECT 1
                  FROM SourceSystem.TableB AS b
                  WHERE Datamart.TableA.Enumber = b.Eid AND 
                        Datamart.TableA.AccountNo = b.AccountID)

这将更新TableATableB没有相关记录的所有记录。