Hi
I Since you are using SQL Server 2005, I would recommend Database
Snapshot. It is very quick to recovery from it; once you have your base
database created to the point where you can start testing, a database
snapshot doesn't take up much space on the disk. And you can revert back to
a SINGLE snapshot when needed.
I often use that for training databases; we got the database up and going
to point where we can train users on it. So take a snapshot; let first batch
of users train on it. And revert back. Doesn't matter the option use there
will be IO that can't be avoided.
DROP/CREATE DB From backup
- You don't have to drop it to restore it; just use RESTORE WITH OVERWRITE.
DELETE/RELOAD with .SQL Scripts
- Doable but I find it generally very slow to delete everything then reload
it. Because now SQL Server has to de-allocate index, space, etc.
HISTORY TABLES for Rollback
- I think this creates more work then you need for simple rollback.
BEGIN TRAN/COMMIT/ROLLBACK TRAN
- That would be a nice idea; but I am taking a guess when you are testing
there are multiple stored procedures in play. If that is the case, you'll
have to use Microsoft Transaction Coordinator to do transaction handling
outside of SQL Server so you can rollback the entire transaction from all
changes made in one transaction. This can be very confusing (sorry not MTC
expert); talking to my Developer buddies it can get into issues.
Thanks.