特定の行が何回変更されたかを知りたいので、これを行いたいです。
これは可能ですか?
ありがとう
特定の行が何回変更されたかを知りたいので、これを行いたいです。
これは可能ですか?
ありがとう
回答が遅くなりましたが、新しい読者の役に立てば幸いです…</p>
試すことができるもう 1 つの関数は DBCC LOG ですが、残念ながらこれは fn_dblog と同じドキュメント化されていない関数です。
SQL Server のトランザクション ログの問題は、この目的で使用することを意図したものではなく、ポイント イン タイム リカバリとトランザクション プロパティを許可するためだけに使用されることです。
試すことができるApexSQLの商用ログ リーダーがあります。
正しい方向に進む可能性のある同様の投稿もいくつかあります。
ログ ファイルを読み取るには、市販のツールを使用するか、膨大な量の SQL 内部の知識が必要です。Select * from ::fn_DBlog(null,null) を使用して、生の出力の一部を確認できます。
実際にデコードして同じレコードが変更されていることを確認し、変更がコミットされたことを確認することは、簡単に言えば難しい作業です。したがって、「可能」ではありますが、それができる可能性はあまり「ありそう」ではありません。
データベース内でその機能が必要な場合は、コード内のトリガー/ロジックを確認する必要があります。
このプログラムを使用してそれを行うことができます http://www.red-gate.com/products/SQL_Log_Rescue/index.htm
SQL Server 2008 の使用を検討してください。
変更データ キャプチャと呼ばれる SQL Server 2008 の新機能があります。この機能は、まさに必要なことを実行します。つまり、時間の経過に伴うデータの変更を追跡します。
変更を追跡するためにログ ファイルを調べることは賢明な方法ではありません。そうすることで、限定された履歴が提供されます。その範囲は、データベースに使用する復旧モデルにも依存します。
ログ テーブルを使用し、SQL Server トリガーを使用してデータを入力することにより、少量の開発で "独自の" ソリューションを展開できます。もちろん、このようなソリューションの適合性は、ビジネス ケースによって異なります。
興味深い読み物については、次の TechNet 記事をご覧ください。