使用其他表的 Tsql 更新表

Tsql Update Table with other table

提问人:sam it 提问时间:8/29/2018 更新时间:8/29/2018 访问量:53

问:

我有两个表 sql

我想使用表中的数据更新表 A

我的 ISSU 是

if (element exist update else update)

表 A

  • 俱乐部 ID |成员
  • 1 |100
  • 2 |150

表B

  • 俱乐部 ID |成员

  • 1 |200

  • 9 |150
  • 6 |50

我希望表a会像这样更新:

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

最后

表 A 将是这样的

  • 俱乐部 ID |成员
  • 1 |200
  • 2 |150
  • 9 |150
  • 6 |50

我不知道该怎么做,你能帮帮我吗

sql-server t-sql

评论


答:

1赞 SQL_M 8/29/2018 #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 )

评论

0赞 SQL_M 8/31/2018
@samit很高兴它有所帮助。如果你喜欢它,请接受它,aswer。
0赞 maulik kansara 8/29/2018 #2

您可以使用 .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);

评论

1赞 SQL_M 8/29/2018
合并有一些潜在的危险:mssqltips.com/sqlservertip/3074/......