sys.sp_cdc_help_change_data_capture (Transact-SQL)

适用于:SQL Server (所有受支持的版本)

返回当前数据库中为变更数据捕获启用的每个表的变更数据捕获配置。 最多可为每个源表返回两行,为每个捕获实例返回一行。 更改数据捕获在每个版本的 Microsoft SQL Server中都不可用。 有关 SQL Server各版本支持的功能列表,请参阅 SQL Server 2016 各个版本支持的功能

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

语法

  
sys.sp_cdc_help_change_data_capture   
  [ [ @source_schema = ] 'source_schema' ]  
  [, [ @source_name = ] 'source_name' ]  

参数

[ @source_schema = ] 'source_schema'
源表所属架构的名称。 source_schemasysname,默认值为 NULL。 指定 source_schema 时,还必须指定 source_name

如果为非 NULL, 则当前 数据库中必须存在source_schema。

如果 source_schema 为非 NULL, 则source_name 也必须为非 NULL。

[ @source_name = ] 'source_name'
源表的名称。 source_namesysname,默认值为 NULL。 指定 source_name 时,还必须指定 source_schema

如果为非 NULL, 则当前 数据库中必须存在source_name。

如果 source_name 为非 NULL, 则source_schema 也必须为非 NULL。

返回代码值

0(成功)或 1(失败)

结果集

列名称 数据类型 说明
source_schema sysname 源表架构的名称。
source_table sysname 源表的名称。
capture_instance sysname 捕获实例的名称。
object_id int 与源表关联的更改表的 ID。
source_object_id int 源表的 ID。
start_lsn binary(10) 日志序列号 (LSN),表示用于查询更改表的低端点。

NULL = 尚未建立低端点。
end_lsn binary(10) LSN,表示用于查询更改表的高端点。 在 SQL Server 2012 (11.x) 中,此列始终为 NULL。
supports_net_changes bit 已启用净更改支持。
has_drop_pending bit SQL Server 2012 (11.x) 中不使用。
role_name sysname 用于控制对更改数据的访问的数据库角色的名称。

NULL = 未使用角色。
index_name sysname 用于唯一标识源表中的行的索引名称。
filegroup_name sysname 更改表所驻留的文件组的名称。

NULL = 更改表在数据库的默认文件组中。
create_date datetime 启用捕获实例的日期。
index_column_list nvarchar(max) 用于唯一标识源表中的行的索引列的列表。
captured_column_list nvarchar(max) 已捕获的源列的列表。

备注

source_schemasource_name 默认为 NULL 或显式设置 NULL 时,此存储过程将返回调用方有权访问的所有数据库捕获实例的信息。 当source_schemasource_name为非 NULL 时,仅返回有关特定命名已启用表的信息。

权限

当source_schemasource_name为 NULL 时,调用方授权将确定结果集中包含哪些已启用的表。 调用方必须对捕获实例的所有捕获列拥有 SELECT 权限,还要有任何所定义的门户角色中的成员身份,才能获得要包括的表信息。 db_owner 数据库角色的成员可以查看有关所有定义的捕获实例的信息。 在请求特定的启用表的信息时,相同的 SELECT 和成员身份条件将应用于命名表。

示例

A. 返回指定表的变更数据捕获配置信息

下面的示例返回 HumanResources.Employee 表的变更数据捕获配置。

USE AdventureWorks2012;  
GO  
EXECUTE sys.sp_cdc_help_change_data_capture   
    @source_schema = N'HumanResources',   
    @source_name = N'Employee';  
GO  

B. 返回所有表的变更数据捕获配置信息

以下示例返回数据库中包含调用方已获访问授权的更改数据的所有启用表的配置信息。

USE AdventureWorks2012;  
GO  
EXECUTE sys.sp_cdc_help_change_data_capture;  
GO