During a DML operation of a table, all read references to a column have to use the original value of the column. This can be shown when swapping column values:

create table foo
  id1 integer not null,
  id2 integer not null, 
  primary key (id1, id2)

insert into foo 
  (id1, id2) 

update foo 
  set id1 = id2,
      id2 = id1;

select * 
from foo;

The above should return 2,1 as the result.
A DBMS that does not support read-consistency for DML statements might return 2,2

Back to the SQL Feature Comparison