SQL データベースのテスト: ロールバックのためにデータベースの状態をキャプチャする方法

SQL データベースのテスト: ロールバックのためにデータベースの状態をキャプチャする方法

開発環境に SQL サーバー (MS SQL 2005) があります。データベースに接続していくつかの操作を実行する .net コードの単体テスト スイートがあります。テスト対象のコードが正しく動作する場合、データベースはテスト前と同じ (または同様の) 状態になるはずです。

ただし、テストを実行する前の状態にデータベースをロールバックできるようにしたいと考えています。これを行う 1 つの方法は、トランザクションを使用して各テスト操作をプログラムでロールバックすることですが、これはプログラミングが難しく面倒であり、テスト コードにエラーが発生する可能性が高くなります。

テーブルが破壊された場合でもすぐに復元できることを知って、自信を持ってテストを実行できるようにしたいのですが。

データベースをテスト前の状態に簡単に復元できるように、データベースの 1 つとそのテーブルのスナップショットを保存する良い方法は何ですか?

答え1

Transact-SQL バックアップおよび復元ルーチンを使用しないのはなぜですか?

MSDNのドキュメントをご覧くださいここそしてここ

答え2

SQL Server 2008をお持ちの場合は、スナップショットすべてのテストを実行し、次のコマンドでデータベースをスナップショットの時点に復元します。

 RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT

関連情報