0

特定のデータベースでスキーマの変更が行われた日時を知りたいです。変更とは、作成、変更、または削除されたテーブルや列などです。挿入、更新、または削除されたデータは含まれません。

これが必要な理由はdbc.tables、 、dbc.columns、およびから返されるデータに大きく依存する .NET ユーティリティを作成しているためですdbc.indices。これらのビューのクエリは非常にコストのかかる操作になる可能性があるため、すべてをカスタム ビジネス オブジェクトに読み取ってから、オブジェクトをディスクに格納された XML ファイルにシリアル化する必要があります。このようにして、データベースの current_timestamp が最後のスキーマ変更の日時以上でない限り、必要なときにデータを逆シリアル化できます。その時点で、更新されたスキーマでローカル XML ファイルを更新します。

4

1 に答える 1

2

LastAlterTimestamp-等しい場合CreateTimestamp、オブジェクトは作成または置換されてから変更されていません。そのデータディクショナリオブジェクトに固有の属性が更新されたときに更新されます。

たとえば、子オブジェクト(テーブル、ビュー、マクロ、ストアドプロシージャ、関数など)が追加、削除、または変更されても、DBC.Databases.LastAlterTimestampは更新されません。パスワード、デフォルトの役割、プロファイル、またはアカウントが変更された場合などに更新されます。

于 2012-12-03T15:14:44.313 に答える