I'd like to suggest that, instead of the oblique VERSION, require each table to have a ModTime column. This would be handled in almost exactly the same way, except instead of new value being \"version+1\" it would be \"DateTime.Now\". (Actually, you would probably want it to be \"GetDate()\" hard-coded into the SQL instead of a parameter, so the data server's clock is used, and all clients are based on the same time. )
The advantage of this is that instead of a meaningless value, the field holds some useful information.
Similarly, you may wish to add a ModUser field, which could be filled either in the SQL, using user_name() or host_name(); or in code ( using HttpContext.User.Identity.Name, or Thread.CurrentPrincipal.Identity.Name depending on the environment)
This should also be used in the Concurrency check, so we have a two-prong validation (time & location). Again this automatically provides useful information as well as concurrency.
