統合テストには SQL Server CE を使用しています。すべてのテストの前に、すべての列からすべてのデータを削除してから、テスト データを再シードします。また、構造が変更されたときにデータベース ファイルを削除します。
データを削除するには、正しい順序ですべてのテーブルを調べて発行する必要があり、Delete from table blah
エラーが発生しやすくなります。新しいエンティティを追加するときに、delete ステートメントを追加するのを忘れてしまうことがよくあります。したがって、テーブルからのデータ削除を自動化できればよいでしょう。
正しい順序でデータを削除するという Jimmy Bogard の良さを見てきました。私はそれを Entity Frameworks 用に実装しましたが、それは本格的な SQL Server で動作します。しかし、テストのためにSQL CEでそれを使用しようとすると、例外が発生します。
System.Data.SqlServerCe.SqlCeException : The specified table does not exist. [ @@sys.tables ]
SQL CE には、必要な情報を保持するサポート システム テーブルがありません。
すべてのテーブルからすべてのデータを削除できる SQL CE バージョンで動作するスクリプトはありますか?