Tsql更新表与其他表

时间:2018-08-29 10:04:17

标签: sql-server tsql

我有两个表sql

我想用表

中的数据更新表A

我的问题是

如果(元素存在,则更新,否则,更新)

表a

  • clubid |成员
  • 1 | 100
  • 2 | 150

表b

  • clubid |成员

  • 1 | 200

  • 9 | 150
  • 6 | 50

我希望表a会更新:

  • clubid 1 =>已更新
  • 将插入
  • clubid 9和Clubid 6 =>

最后

表a将会是

  • clubid |成员
  • 1 | 200
  • 2 | 150
  • 9 | 150
  • 6 | 50

我不知道怎么做,请你帮我

2 个答案:

答案 0 :(得分:1)

两个单独的语句可以做到:

UPDATE TableA SET TableA.Member = TableB.Member 
FROM TableB 
WHERE TableA.ClubID = TableB.ClubID

INSERT INTO TableA
SELECT * FROM TableB WHERE ClubID NOT IN ( SELECT ClubID FROM TableA )

答案 1 :(得分:0)

您可以使用Merge

merge tableA trg
using tableB src on trg.clubid=src.clubid
when matched then
update set trg.member=src.member
when not matched by trg then
insert(clubid,member)
values (src.clubid,src.member);