我的开发环境中有一个 SQL 服务器 (MS SQL 2005)。我有一套单元测试,用于测试一些 .net 代码,这些代码将连接到数据库并执行一些操作。如果测试中的代码运行正常,那么数据库的状态应该与测试前相同(或相似)。
但是,我希望能够将数据库回滚到测试运行之前的状态。实现此目的的一种方法是使用事务以编程方式回滚每个测试操作,但编程起来既困难又繁琐;这很容易导致测试代码出错。
我希望能够自信地运行我的测试,并且知道如果它们破坏了我的表格,我可以快速恢复它们?
有什么好方法可以保存我的一个数据库及其表的快照,以便我可以轻松地将数据库恢复到测试之前的状态?
答案1
答案2
如果你有 SQL Server 2008,那么你可以快照,运行所有测试,然后使用以下命令将数据库恢复到快照点:
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT