sys.sp_cdc_help_change_data_capture (Transact-SQL)
返回当前数据库中为变更数据捕获启用的每个表的变更数据捕获配置。最多可为每个源表返回两行,为每个捕获实例返回一行。变更数据捕获仅在 SQL Server 2008 Enterprise Edition、Developer Edition 和 Evaluation Edition 中可用。
语法
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 2008 中,此列始终为 NULL。 |
supports_net_changes |
bit |
已启用净更改支持。 |
has_drop_pending |
bit |
SQL Server 2008 中不使用。 |
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 AdventureWorks;
GO
EXECUTE sys.sp_cdc_help_change_data_capture
@source_schema = N'HumanResources',
@source_name = N'Employee';
GO
B. 返回所有表的变更数据捕获配置信息
以下示例返回数据库中包含调用方已获访问授权的更改数据的所有启用表的配置信息。
USE AdventureWorks;
GO
EXECUTE sys.sp_cdc_help_change_data_capture;
GO