>The main reason is to be able to rollback all updates if 1 update fails. This
>is done in between a BEGIN TRANSACTION and an END TRANSACTION. If updating a
>particular record fails then a ROLLBACK is issued to revert all the
>TableUpdates.
This is what I do before I start updating ... this doesn't seem a reason to me to check if an update is really needed.
>Another reason is to notify a user that a record they are about to update has
>already had its original value changed by another user. That user can be
>notified of the new value and given a chance to abort their change or go ahead
>and overwrite the other user's change.
This seems a very valuable reason to do the checking. I always use pessimistic buffering, so I don't have the problem, but the solution you propose is nicer, and I will definitely try it out !