Pruebas de bases de datos SQL: cómo capturar el estado de mi base de datos para revertirlas

Pruebas de bases de datos SQL: cómo capturar el estado de mi base de datos para revertirlas

Tengo un servidor SQL (MS SQL 2005) en mi entorno de desarrollo. Tengo un conjunto de pruebas unitarias para algún código .net que se conectará a la base de datos y realizará algunas operaciones. Si el código bajo prueba funciona correctamente, entonces la base de datos debería estar en el mismo estado (o similar) al que estaba antes de las pruebas.

Sin embargo, me gustaría poder revertir la base de datos a su estado anterior a la ejecución de las pruebas. Una forma de hacerlo sería utilizar transacciones mediante programación para revertir cada operación de prueba, pero esto es difícil y engorroso de programar; fácilmente podría provocar errores en el código de prueba.

Me gustaría poder ejecutar mis pruebas con confianza sabiendo que si destruyen mis tablas, puedo restaurarlas rápidamente.

¿Cuál es una buena manera de guardar una instantánea de una de mis bases de datos con sus tablas para poder restaurar fácilmente la base de datos a su estado anterior a la prueba?

Respuesta1

¿Por qué no utilizar las rutinas de copia de seguridad y restauración de Transact-SQL?

Eche un vistazo a la documentación en MSDN.aquíyaquí.

Respuesta2

Si tuvieras SQL Server 2008, entonces podrías tomar uninstantánea, ejecute todas sus pruebas y luego restaure la base de datos al punto de la instantánea con:

 RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT

información relacionada