更新由pk / fk连接的两个表

时间:2012-08-17 16:57:44

标签: sql-server-2008 inner-join

我有两个具有相同ID列PK / FK的表。我需要使用第三个表中的数据更新它们。

IF EXISTS (SELECT * C, B WHERE B2 = C4 AND C6 = NULL)
Update A
   Set A2=C2,
       A3=C3,
       B2=C4,
       B3=C5
 From C
 Where C6 = NULL

如何将连接放入以将正确的B行链接到A行?我可以在最后的那个陈述中删除,因为它已经受到那个标准的限制了,对吗?

1 个答案:

答案 0 :(得分:-1)

您不能一次更新两个表,只需在TRANSACTION中包装两个更新语句。:

BEGIN TRANSACTION
--perform a update...
    UPDATE A
    SET 
      A.A2=C.C2,
      A.A3=C.C3
    FROM
    MyTableA A
    INNER JOIN MyTableC C
    ON C.ID = A.ID...
--perform b update
   UPDATE B...
COMMIT