Alternatives to snapshot functionality, SQL Server Standard
For testing purposes I would like to reset a complete database to a certain state (data and structure). I would like to do this automated. Preferably a command line instruction before I start my tests.
After some searching I discovered that SQL Server offers an great solution for this. Snapshots. After writing a test query I discovered that the standard edition of SQL Server does NOT support this. :-(
Given the fact that I want this to be automated: what are my options? Overwriting the data f开发者_StackOverflow社区iles immediately doesn't sound like a good option to me...
Some other information:
- Windows 7
- Microsoft SQL Server Standard Edition (64-bit), 10.50.1600.1
- Database size is app. 1 gigabyte
- This is only meant for testing. So the database is NOT used by other users when I'm returning to my 'snapshot'.
- More information about snapshots:
- http://msdn.microsoft.com/en-us/library/ms190677.aspx
- This page also states that the standard edition does not support this. :-(
Thank you in advance!
Detach the MDF file, copy it somewhere, re-attach it.
When you want to reset the database, detatch the MDF, copy the old one over the top, and re-attach it.
Alternatively backup and restore.
If you're doing this for testing purposes, you can use Developer Edition:
SQL Server 2008 Developer includes all of the functionality of Enterprise Edition, but is licensed only for development, test, and demo use.
I homebrewed a solution like this because I wasn't happy with the way replication was running (and I was also using standard edition) - maybe my solution will lead you in the right direction:
http://trycatchfinally.net/2009/09/moving-a-sql-server-database-to-another-server-on-a-schedule-without-using-replication/
Basically, it takes a periodic backup, zips it, FTPs it somewhere, and the remote server checks for new files, extracts them, restores them, and then emails you to let you know a new replica has been restored.
For testing, you can use Developers Edition, which has snapshots and is quite cheap. However, we prefer to build a new test database from scripts in source control - that allows us to easily determine the changes, quickly roll out a testing system on any box, and saves us a lot of time.
精彩评论