cdc.change_tables (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

为数据库中的每个更改表返回一行。 对源表启用变更数据捕获时,将创建一个更改表。 建议不要直接查询系统表。 请改为执行 sys.sp_cdc_help_change_data_capture 存储过程。

列名称 数据类型 说明
object_id int 更改表的 ID。 在数据库中是唯一的。
version int 标识为仅供参考。 不支持。 不保证以后的兼容性。

对于 SQL Server 2012 (11.x) ,此列始终返回 0。
source_object_id int 为变更数据捕获启用的源表的 ID。
capture_instance sysname 用于命名特定于实例的跟踪对象的捕获实例的名称。 默认情况下,该名称派生自源架构名称加上 schemaname_sourcename格式的源表名称。
start_lsn binary(10) 日志序列号 (LSN),表示查询更改表中的更改数据时的低端点。

NULL = 尚未建立低终结点。
end_lsn binary(10) 标识为仅供参考。 不支持。 不保证以后的兼容性。

对于 SQL Server 2008 (10.0.x) ,此列始终返回 NULL。
supports_net_changes bit 对更改表启用了查询净更改支持。
has_drop_pending bit 捕获进程收到关于源表已被删除的通知。
role_name sysname 用于访问更改数据的数据库角色的名称。

NULL = 不使用角色。
index_name sysname 用于唯一标识源表中的行的索引名称。 index_name 是源表的主键索引的名称,或者在源表上启用更改数据捕获时指定的唯一索引的名称。

NULL = 启用更改数据捕获时源表没有主键,启用更改数据捕获时未指定唯一索引。

注意:如果在存在主键的表上启用了更改数据捕获,则无论是否启用净更改,更改数据捕获功能都会使用索引。 启用变更数据捕获之后,将不允许对主键进行修改。 如果表上没有主键,仍可以启用更改数据捕获,但只能将净更改设置为 false。 启用变更数据捕获之后,即可以创建主键。 还可以修改主键,因为更改数据捕获不使用主键。
filegroup_name sysname 更改表所驻留的文件组的名称。

NULL = 更改表在数据库的默认文件组中。
create_date datetime 启用源表的日期。
partition_switch bit 指示是否可以对为更改数据捕获启用的表执行 ALTER TABLESWITCH PARTITION 命令。 0 指示分区切换被阻止。 未分区表始终返回 1。

另请参阅

sys.sp_cdc_help_change_data_capture (Transact-SQL)