ICE06
ICE06 は、すべてのテーブルをチェックして、 _Validation テーブル に一覧表示されているすべての列がテーブルに存在することを検証します。 テーブルが存在しない場合、そのテーブルの _Validation エントリは無視されます。
ICE06 の目的は、更新されていない古いデータベースで、スキーマ変更を反映した新しい _Validation テーブルを作成者が使用しようとする事例を検出することです。 ICE06 では、変更されたデータベースで古い _Validation テーブルが使用されるという逆のケースも検出されます。
ICE03 によって実行される内部検証では、columns カタログにリストされている、_Validation テーブルに定義されていないテーブル列のインスタンスがキャッチされることに注意してください。 したがって、ICE03 と ICE06 の両方を使用すると、データベース内のすべての列がテストされます。
結果
ICE06 では、_Columns テーブルにリストされていないテーブル列が_Validation テーブルに定義されている場合にエラーを返します。
例
次の例では、ICE06 によりメッセージが送信されます
Column: Version of Table: ModuleSignature is not defined in database. (列: テーブルのバージョン: ModuleSignature がデータベースで定義されていません。)
_Validation テーブル (一部)
テーブル | 列 |
---|---|
ModuleSignature | ModuleID |
ModuleSignature | バージョン |
_Columns テーブル (一部)
テーブル | number | 名前 |
---|---|---|
ModuleSignature | 1 | ModuleID |
ModuleSignature テーブルの Version 列は、データベースに含まれていないか、_Columns テーブルに一覧表示されていません。
関連トピック