質問

XMLデータをデータベースに保存するいくつかのアプリケーションに取り組んできました。それらをすべて日付するには、単に現在のXMLコンテンツを新しいXMLコンテンツで上書きします。

XMLへの変更をデータベースに保存したいが、現在DBにあるものを上書きしたくない。

変更のために新しい行を作成し、古い行をそのままにする短い方法、他にどのようなオプションを使用できますか?

実際のテキストの差分として差分を保存することを考えましたが、これは常にXMLで機能するとは限りません。

これを望んでさえいらっしゃいますか

役に立ちましたか?

解決

データテーブルの横に監査テーブルを追加することを検討できます。

(変更の日付を記録するための)datetime列と共に、履歴の追跡に関心のある列のみがあり、通常はユーザー情報も必要です(つまり、ログインしたユーザーを接続から取得するか、挿入/更新でユーザー名を入力してください)。

次に、データテーブルに更新トリガーを作成し、削除された擬似テーブルから監査テーブルに新しい行を挿入します。更新は実際には削除と挿入であるため、更新を実行している場合、更新前のデータが含まれます。

SQL CLRを使用して、監査する各データテーブルの一意の監査テーブルとトリガーの実装を抽象化することを提案する、より汎用的なソリューションもあります。 http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top