title: SQL UPDATE read column values before setting
body: <p>I have searched for this information both on SO and on google, but have not found any authoritative answer.</p>
  
  <p>When you have an update statement like:</p>
  
  <pre><code>UPDATE table SET rowA = rowB, rowB = NULL ...
  </code></pre>
  
  <p>It seems that:</p>
  
  <ul>
  <li>ordering is not important (<code>UPDATE table SET rowB = NULL, rowA = rowB</code>)</li>
  <li>nonetheless, the result is that rowA takes the prev value in rowB, because it seems that UPDATE first reads the previous values, then it updates them.</li>
  </ul>
  
  <p>I would like to know if the two above points are <em>true in general</em> for SQL, i.e. if they are <em>part of the SQL UPDATE semantics</em>, if they are in the <em>standard</em>, or if it is an implementation details (and therefore subject to change).
  Thanks!</p>
  
  <blockquote>
    <p>EDIT: Let me stress that I would like an "authoritative" answer; I already tested on a number of SQL implementation that the behaviour is indeed the one depicted here. What I need is a "proof" that this is actually in the SQL standard/spec/semantics of UPDATE, with a link to the standard or, alternatively, to a surrogate reliable source (MSDN, dev.mysql.com, Oracle or PostgreSQL docs, ...)</p>
  </blockquote>