Ho cercato queste informazioni sia su SO che su google, ma non ho trovato alcuna risposta autorevole.SQL UPDATE leggere i valori delle colonne prima dell'impostazione
Quando si dispone di un'istruzione di aggiornamento come:
UPDATE table SET rowA = rowB, rowB = NULL ...
Sembra che:
- ordinamento non è importante (
UPDATE table SET rowB = NULL, rowA = rowB
) - comunque, il risultato è che rigaA assume il valore prev nella riga B, poiché sembra che UPDATE prima abbia letto i valori precedenti, quindi li aggiorna.
Vorrei sapere se i due punti di cui sopra sono vero in generale per SQL, vale a dire se sono parte della semantica SQL UPDATE, se sono nel standard di, o se è un dettaglio di implementazione (e quindi soggetto a modifiche). Grazie!
EDIT: Vorrei sottolineare che vorrei una risposta "autorevole"; Ho già testato su una serie di implementazioni SQL che il comportamento è effettivamente quello illustrato qui. Quello di cui ho bisogno è una "prova" che questo sia effettivamente nello standard SQL/spec/semantica di UPDATE, con un collegamento allo standard o, in alternativa, a una fonte affidabile surrogata (MSDN, dev.mysql.com, Oracle o PostgreSQL documenti, ...)
Esattamente quello che stavo cercando! Grazie! –