2

SQLServer2000データベースをSQLServer2008R2にアップグレードしています。データキャプチャの変更機能を利用したい。私の既存のアプリケーションでは同様の機能がありHst_ますが、元のテーブルとほぼ同様のスキーマを持つプレフィックス付きのトリガーと履歴テーブルを使用しています。

私の質問は、データをHst_テーブルからCDC機能で使用されるテーブルに移行する方法はありますか?

私はこのようにすることを考えていました:

  • 私はテーブルを持っていますCases
  • カスタムの履歴メカニズムを使用しているので、3つのトリガー(挿入、更新、削除)とツインテーブルもありますHst_Cases
  • 今、私はテーブルでCDCを有効にしていますCases
  • CDCは、履歴データ()を返す関数と、fn_cdc_get_all_changes_dbo_Cases実際にデータを保持するシステムテーブル()を作成しcdc.dbo_Cases_CTます。
  • Hst_Casesからにデータを挿入できますcdc.dbo_Cases_CTが、次の問題があります。
    • __$start_lsn取得方法がわかりません__$seqval
    • 理解するのは難しいです__$update_mask(私はそれぞれの2つの行を比較する必要があります)。

それを行う唯一の方法はありますか?この状況を避けたいので、「新しい」履歴データをHst_テーブルの「古い」履歴データと結合します。

ありがとう!

4

1 に答える 1

1

通常、キャプチャ テーブルを使用して長期的な変更データを保存することは望ましくありません。SSIS パッケージでキャプチャ データを永続的なテーブルに移動することをお勧めします。それらを使用する場合、データベースを復元する必要がある場合、復元時に KEEP_CDC オプションを使用しない限り、復元後に空になると思います。また、キャプチャ テーブルを自動的に削除するジョブを無効にする必要があります。

ストレージ用に独自のテーブルを作成する場合は、lsn フィールドと mask フィールドを省略できます。

于 2012-03-01T12:33:59.770 に答える