if it is database wide then [guaranteed] restore points are the best ways, else OWM might be a schema level change control approach. change control pack also provides some functionality but personally i have not used the last two. An enterprising developer i work with wrote a groovy script (which works with svn/mercurial) that allows his team to apply/rollback changes based on version number they specify automatically. but it is all custom :) Raj