CHANGE_TRACKING_MIN_VALID_VERSION (Transact-SQL)

Returns the minimum version that is valid for use in obtaining change tracking information from the specified table, when you are using the CHANGETABLE function.

Topic link iconTransact-SQL Syntax Conventions

Syntax

CHANGE_TRACKING_MIN_VALID_VERSION ( table_object_id )

Arguments

  • table_object_id
    Is the object ID of the table. table_object_id is an int.

Return Type

bigint

Remarks

Use this function to validate the value of the last_sync_version parameter for CHANGETABLE. If last_sync_version is less than the value that is reported by this function, the results that are returned from a later call to CHANGETABLE might not be valid.

CHANGE_TRACKING_MIN_VALID_VERSION uses the following information to determine the return value:

  • When the table was enabled for change tracking.

  • When the background cleanup task ran to remove change tracking information older than the retention period specified for the database.

  • If the table was truncated. This removes all change tracking information that is associated with the table.

The function returns NULL if any one of the following conditions is true:

  • Change tracking is not enabled for the database.

  • The specified table object ID is not valid for the current database.

  • Insufficient permission to the table specified by the object ID.

Examples

The following example determines whether a specified version is a valid version. The example obtains the minimum valid version of the dbo.Employees table, and then compares this to the value of the @last_sync_version variable. If the value of @last_sync_version is lower than the value of @min_valid_version, the list of changed rows will not be valid.

Note

You would usually obtain the value from a table or other location where you stored the last version number that was used to synchronize data.

-- 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 ...)