
開発環境に SQL サーバー (MS SQL 2005) があります。データベースに接続していくつかの操作を実行する .net コードの単体テスト スイートがあります。テスト対象のコードが正しく動作する場合、データベースはテスト前と同じ (または同様の) 状態になるはずです。
ただし、テストを実行する前の状態にデータベースをロールバックできるようにしたいと考えています。これを行う 1 つの方法は、トランザクションを使用して各テスト操作をプログラムでロールバックすることですが、これはプログラミングが難しく面倒であり、テスト コードにエラーが発生する可能性が高くなります。
テーブルが破壊された場合でもすぐに復元できることを知って、自信を持ってテストを実行できるようにしたいのですが。
データベースをテスト前の状態に簡単に復元できるように、データベースの 1 つとそのテーブルのスナップショットを保存する良い方法は何ですか?
答え1
答え2
SQL Server 2008をお持ちの場合は、スナップショットすべてのテストを実行し、次のコマンドでデータベースをスナップショットの時点に復元します。
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT