更新两个表加入PK/FK

问题描述:

我有两个具有相同ID列PK/FK的表。我需要使用第三个表中的数据更新它们。更新两个表加入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行?我可以将最后的陈述删除,因为它已经被这个标准限制了,对吗?

你不能一次更新两个表,你可以简单地包裹在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 
+0

交易的想法是好的。谢谢。 – 2012-08-17 19:20:13