• This script proves things nicely:

    CREATE TABLE #TestUpdateA

    (ColA CHAR(1),

    ColB INT)

    GO

    CREATE TABLE #TestUpdateB

    (ColA CHAR(1),

    ColB INT)

    GO

    INSERT #TestUpdateA (ColA, ColB)

    VALUES ('A', 0)

    INSERT #TestUpdateA (ColA, ColB)

    VALUES ('B', 0)

    INSERT #TestUpdateA (ColA, ColB)

    VALUES ('C', 0)

    GO

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('A', 1)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('A', 2)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('B', 1)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('C', 1)

    GO

    UPDATE #TestUpdateA

    SET #TestUpdateA.ColB = #TestUpdateB.ColB

    FROM #TestUpdateA

    JOIN #TestUpdateB ON #TestUpdateA.ColA = #TestUpdateB.ColA

    GO

    SELECT *

    FROM #TestUpdateA

    GO

    TRUNCATE TABLE #TestUpdateB

    GO

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('A', 2)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('A', 1)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('B', 1)

    INSERT #TestUpdateB (ColA, ColB)

    VALUES ('C', 1)

    GO

    UPDATE #TestUpdateA

    SET #TestUpdateA.ColB = #TestUpdateB.ColB

    FROM #TestUpdateA

    JOIN #TestUpdateB ON #TestUpdateA.ColA = #TestUpdateB.ColA

    GO

    SELECT *

    FROM #TestUpdateA

    GO

    DROP TABLE #TestUpdateA

    DROP TABLE #TestUpdateB

    GO

    --
    Adam Machanic
    whoisactive