0

CDC が有効になっている DB があります。たとえば、単純な顧客テーブルを見てみましょう。

dbo.顧客

このテーブルで cdc を有効にすると、以下が得られます。

cdc.Customer_CT

SQL Server エージェントはキャプチャ ジョブとクリーンアップ ジョブを実行し、パラメーターを設定できます。

sys.sp_cdc_cleanup_change_table   
[ @capture_instance = ] 'capture_instance',   
[ @low_water_mark = ] low_water_mark ,  
[ @threshold = ]'delete threshold'  

ただし、_CT 内に少量のデータのみを保持し、残りはアクセス頻度の低い履歴テーブルに移動したいと考えています。

つまり、以下も必要になります。

cdc.Customer_CT_History

CDC クリーンアップ ジョブを構成して、cdc.Customer_CT からレコードを削除し、cdc.Customer_CT_Historyに挿入する方法に興味があります。

これが履歴データを保存するための最善の方法ではないことは理解していますが、私の質問とこれを達成する方法を試してみてください. ありがとう!

4

2 に答える 2

0

データを処理するときは、__$update_mask 列に対処して使用するようにしてください。これにより、どの列が変更されたかが正確にわかり、すべての列を比較する必要がなくなります。また、キャプチャされる変更のタイムスタンプとして __$start_lsn を使用できます。

于 2016-09-21T17:15:42.770 に答える