CHANGE_TRACKING_MIN_VALID_VERSION (Transact-SQL)

返回在您使用 CHANGETABLE 函数时用来从指定的表中获取更改跟踪信息的最低有效版本。

主题链接图标Transact-SQL 语法约定

语法

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