CHANGE_TRACKING_MIN_VALID_VERSION (Transact-SQL)
CHANGETABLE 関数の使用時に、指定したテーブルから変更追跡情報を取得するのに使用できる、最小バージョンを返します。
構文
CHANGE_TRACKING_MIN_VALID_VERSION ( table_object_id )
引数
- table_object_id
テーブルのオブジェクト ID。table_object_id は int です。
戻り値の型
bigint
説明
この関数は、CHANGETABLE の last_sync_version パラメータの値を検証するために使用します。last_sync_version がこの関数によって報告された値より小さい場合、後で CHANGETABLE を呼び出したときに無効な結果が返されることがあります。
CHANGE_TRACKING_MIN_VALID_VERSION は、次の情報を使用して戻り値を判断します。
テーブルで変更の追跡を有効にした日時。
バックグラウンド クリーンアップ タスクを実行して、データベースに対して指定した保持期間より古い変更追跡情報を削除した日時。
テーブルが切り捨てられたかどうか。これにより、テーブルに関連付けられている変更追跡情報がすべて削除されます。
次のいずれかの条件に該当する場合、この関数は NULL を返します。
データベースで変更の追跡が有効になっていない。
指定されたテーブル オブジェクト ID が現在のデータベースで有効でない。
オブジェクト ID で指定されたテーブルに対する十分な権限がない。
例
次の例では、指定されたバージョンが有効なバージョンかどうかを判断します。この例では、dbo.Employees テーブルの有効な最小バージョンを取得し、このバージョンと @last_sync_version 変数の値を比較します。@last_sync_version の値が @min_valid_version の値より小さい場合、変更された行の一覧は有効ではありません。
注 |
---|
通常は、データの同期に使用した最新のバージョン番号が格納されているテーブルまたはその他の場所から値を取得します。 |
-- The tracked change is tagged with the specified context.
DECLARE @min_valid_version bigint, @last_sync_version bigint;
SET @min_valid_version =
CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('dbo.Employees'));
SET @last_sync_version = 11
IF (@last_sync_version < @min_valid_version)
-- Error, do not obtain changes
ELSE
-- Obtain changes using CHANGETABLE(CHANGES ...)