SQL Server:更新一列并插入(如果不存在)

时间:2014-10-01 21:06:08

标签: sql sql-server database

我有一张表TableKats,如下所示:

ID - int 
Name - varchar
KatID - int 

我想要做的是从另一个表更新列Name,如果另一个表中有一个TableKats中不存在的名称,它应该插入并给出KatID a 0

有人知道这样做的方法吗?感谢

1 个答案:

答案 0 :(得分:2)

你可以使用MERGE来做,因为你的其他表模式是不可知的,假设Name也是其他表中的列

MERGE TableKats T
USING ( SELECT * from TableB) AS S
ON T.Name = S.Name
WHEN NOT MATCHED THEN
  INSERT ( Name, KatID)
  VALUES ( S.Name, 0)
WHEN MATCHED THEN
  UDPATE  -- Not clear what needs to be updated.