2017-06-01 11 views
0

データベース内のすべてのテーブルのデータを監査する必要があります。私はSQL Server 2016を使用しています。すべてのテーブルに対してチェンジ・データ・キャプチャを有効にしました。SQL Change Data Captureすべてのテーブルを取得

すべての表からの変更を時系列的に取得するにはどうすればよいですか?

答えて

0

基本的にチェンジ・データ・キャプチャは、各テーブルの変更イベントをキャプチャするために[cdc]スキーマ内にシステム・テーブルを作成します。 cdc。[TableSchemaName] _ [TableName] _CTのようなものですが、このテーブルはあなたの実際のテーブルに加えられたすべての変更を時系列順に並べます。基本的には、DBのトランザクションログファイルから読み取られたデータです。

別のポイント - いつでもデータベースの最大Lsnと、変更データを読み込むテーブルの最小LSNを照会する必要があります。最小LSNと最大LSNの間のレコードは、テーブルの変更の合計を示します。以下

参考リンク: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/cdc-fn-cdc-get-all-changes-capture-instance-transact-sql

+0

が、私は1回の呼び出しですべてのCDCテーブルを照会することはできますか?私は100以上のテーブルを持っているので、UNIONは必要ありません。 – jlp

+0

CDCには、デフォルトで、すべてのテーブルデータを一緒に読み取るようなプロシージャ/ファンクションはありません。カスタムSQLを作成してそれを実現する必要があります – Sujith

関連する問題