sys.sp_cdc_help_change_data_capture (Transact-SQL)
适用于:SQL Server
返回当前数据库中为变更数据捕获启用的每个表的变更数据捕获配置。 最多可为每个源表返回两行,为每个捕获实例返回一行。 更改数据捕获并非在每个版本的 SQL Server 中都可用。 有关 SQL Server 各个版次支持的功能列表,请参阅 SQL Server 2022 的各个版次及其支持的功能。
语法
sys.sp_cdc_help_change_data_capture
[ [ @source_schema = ] 'source_schema' ]
[ , [ @source_name = ] 'source_name' ]
[ ; ]
参数
[ @source_schema = ] 'source_schema'
源表所属的架构的名称。 @source_schema 为 sysname,默认值为 NULL。 指定 @source_schema 时,还必须指定 @source_name 。
如果为非 null, 则当前 数据库中必须存在@source_schema。
如果 @source_schema 为非 null, 则@source_name 也必须为非 null。
[ @source_name = ] 'source_name'
源表的名称。 @source_name 为 sysname,默认值为 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_schema 和 @source_name 默认为 NULL 时,或者显式设置为 NULL 时,此存储过程将返回调用方有权访问 SELECT 的所有数据库捕获实例的信息。 当@source_schema和@source_name为非 null 时,仅返回有关特定命名已启用表的信息。
权限
当 @source_schema 和 @source_name 为 NULL 时,调用方授权将确定哪些已启用的表包含在结果集中。 调用方必须对捕获实例的所有捕获列拥有 SELECT 权限,还要有任何所定义的门户角色中的成员身份,才能获得要包括的表信息。
db_owner数据库角色的成员可以查看有关所有定义的捕获实例的信息。 在请求特定的启用表的信息时,相同的 SELECT 和成员身份条件将应用于命名表。
示例
A. 返回指定表的更改数据捕获配置信息
下面的示例返回 HumanResources.Employee
表的变更数据捕获配置。
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_help_change_data_capture
@source_schema = N'HumanResources',
@source_name = N'Employee';
GO
B. 返回所有表的更改数据捕获配置信息
以下示例返回数据库中包含调用方已获访问授权的更改数据的所有启用表的配置信息。
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_help_change_data_capture;
GO