• All the solutions proposed are interesting.

    However, would it not just be simpler to - as proposed by OP - to just store the MAX(date) into a local variable and simply write

    DECLARE @d_MaxDate datetime2;

    SELECT @d_MaxDate = MAX(SomeDate) FROM SomeTable;

    UPDATE SomeTable SET IsMaxDate = CASE WHEN SomeDate = @d_MaxDate THEN 1 ELSE 0 END;

    Just because it could be done in a single (more complicated) T-SQL statement might not necessarily mean it should be done this way.