11

テーブルには最後に更新されたフィールドがないため、既存のデータがいつ更新されたかを知る必要があります。したがって、最後に更新されたフィールドを追加しても役に立ちません(私が知る限り)。

4

5 に答える 5

5

SQL Server 2000は、この情報を追跡しません。

データベースモデルによっては、この日付が何であったかを推測するための創造的/あいまいな方法があるかもしれません。ただし、他のデータとは関係のない1つのテーブルについて話している場合は、運が悪いことになります。

于 2008-08-05T20:58:17.477 に答える
1

ログビューアを試してみてください。これにより、基本的にトランザクションログでトランザクションを確認できるため、問題の行を更新したステートメントを見つけることができるはずです。これを本番レベルの監査戦略としてはお勧めしませんが、ピンチで役立つことがわかりました。

これが私が使用したものです。これは無料で、(のみ)SQLServer2000で動作します。

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm

于 2008-09-02T05:43:32.263 に答える
1

なんらかの監査メカニズムがなければ、変更を確認することはできません。収集されていない情報を抽出しようとしています。レコードがいつ追加または編集されたかを知る必要がある場合は、レコードが更新されたときにトリガーを介して更新される日時フィールドを追加するのが最も簡単な選択です。

レコードがいつ削除されたかを追跡する必要がある場合は、監査テーブルを使用して、レコードが追加、編集、または削除されたときにトリガーから行を入力する必要があります。

于 2008-08-05T21:32:01.013 に答える
0

そのテーブルにタイムスタンプフィールドを追加し、更新トリガーを使用してそのタイムスタンプ値を更新できます。

于 2008-08-05T20:34:41.817 に答える
0

OmniAuditは、データベース全体の監査を実装する商用パッケージです。

無料の方法は、起動時に監査テーブルにエントリを追加するトリガーをテーブルごとに作成することです。

于 2008-08-05T21:04:47.153 に答える