Por que não usar as rotinas de backup e restauração do Transact-SQL?
Eu tenho um servidor SQL (MS SQL 2005) no meu ambiente de desenvolvimento. Eu tenho um conjunto de testes de unidade para algum código .net que irá se conectar ao banco de dados e realizar algumas operações. Se o código em teste funcionar corretamente, o banco de dados deve estar no mesmo estado (ou similar) do que era antes dos testes.
No entanto, gostaria de poder reverter o banco de dados para seu estado antes que os testes sejam executados. Uma maneira de fazer isso seria usar as transações programaticamente para reverter cada operação de teste, mas isso é difícil e complicado de programar; poderia facilmente levar a erros no código de teste.
Eu gostaria de poder executar meus testes com confiança, sabendo que, se eles destruírem minhas tabelas, eu posso restaurá-los rapidamente?
O que é uma boa maneira de salvar um instantâneo de um dos meus bancos de dados com suas tabelas para que eu possa restaurar facilmente o banco de dados para o seu estado antes do teste?
se você tivesse o sql server 2008, você poderia fazer um snapshot , execute todos os seus testes e restaure o banco de dados de volta ao ponto do snapshot com:
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT
Tags sql testing sql-server rollback