監査テーブルを使用して、 '2011-01-01 08:00:00.000'で実行された単一の破壊的なSQL文を記録しています。各MyTableレコードは、スクリプトが実行されたこの日に一度更新されたものとみなすことができます。このSQLはおそらくユーザーによって実行されたため、取得できませんでした。 MyTableに変更が加えられるたびに、新しい値の監査証跡がAuditMyTableに格納されます。SQLで監査証跡を使用して破棄されたデータ行を見つける方法
私の元のテーブルスキーマ:
MyTable(AccountId int PK, Amount int)
MyTableとスキーマのための私の監査証跡表:
AuditMyTable(AccountId int, Amount int, AuditDate datetime)
私の質問は、私は私ができるように、それ自体に対してAuditMyTableから参加するSQLを記述しない方法です以下のデータを入手してください。
AuditMyTable.AccountId, AuditMyTable.Amount as [NullAmount], AuditMyTablePrevious.Amount as [PreviousNotNullAmount]
あなたにのみ関心があります既知の時間に1つの特定のレコードまたはテーブル全体? –
本質的に、SQLが実行された時刻より前の値を持つレコードPKのリストを発見しようとしましたが、実行された時点でヌルになっていました。 – mirezus