BEGIN TRANSACTION *!* Says you're going to write buffers of several related tables *!* write the buffer for one of these related tables IF TABLEUPDATE() *!* Then write the other buffers (checking each time), and if it's ok END TRANSACTION ELSE *!* Else I couldn't write ALL the buffers so I want to... ROLLBACK *!* undo all the writes that I did. This changes the <b>writing</b> of *!* the buffer, but <b>not</b> the buffer itself. Which can be a good *!* thing. TABLEREVERT() && Each buffer *!* OR *!* You can give the user the opportunity to change whatever went *!* wrong in the transaction, so they don't have to keep redoing their *!* work and guessing if it's right.If you are only updating one table, or several tables that are independent of one another then you do not need a BEGIN TRANSACTION. Transactions are only needed when one table's update depends on another's being able to be updated too.