• Is there a reason you chose to use a list of "OR" vs CHECKSUM in your update statement? I realize CHECKSUM is not the same as CRC but it works just fine if comparing a single row.

    Example:

    UPDATE dim

    SET dim.attribute1 = tmp.attribute1,

    dim.attribute1 = tmp.attribute2,

    dim.load_time = tmp.load_time

    FROM dw.dbo.dimension dim

    INNER JOIN #dim tmp

    ON tmp.surrogate_key = dim.surrogate_key

    WHERE tmp.surrogate_key <> 0

    AND CHECKSUM(dim.attribute1,dim.attribute2) <> CHECKSUM(tmp.attribute1,tmp.attribute2)

    This is cleaner to read for SCD Type 1 changes and, at least in our environment, seems to be a bit quicker.