sys.sp_cdc_generate_wrapper_function (Transact-SQL)

适用于:SQL Server

生成脚本,为 SQL Server 中提供的变更数据捕获查询函数创建包装函数。 生成的包装器中支持的 API 允许将查询间隔指定为日期/时间间隔。 此规范使函数适用于许多仓库应用程序,包括由 Integration Services 包设计人员开发的应用程序,他们使用变更数据捕获技术来确定增量负载。

有关 生成的 sys.sp_cdc_generate_wrapper_function函数的详细信息 ,请参阅 sys.fn_all_changes_<capture_instance> (Transact-SQL) sys.fn_net_changes_<capture_instance> (Transact-SQL)

Transact-SQL 语法约定

语法

sys.sp_cdc_generate_wrapper_function
    [ [ @capture_instance sysname = ] 'capture_instance' ]
    [ , [ @closed_high_end_point = ] closed_high_end_pt ]
    [ , [ @column_list = ] N'column_list' ]
    [ , [ @update_flag_list = ] N'update_flag_list' ]
[ ; ]

参数

[ @capture_instance = ] 'capture_instance'

@capture_instance 生成脚本的捕获实例为 sysname ,默认值为 NULL。 如果省略某个值或显式设置为 NULL,则会为所有捕获实例生成包装脚本。

[ @closed_high_end_point = ] high_end_pt_flag

指示提交时间等于高终结点的更改是否由生成的过程包含在提取间隔内的标志位。 @closed_high_end_point ,默认值 1为 ,表示应包含终结点。 值 指示 0 所有提交时间严格小于高终结点。

[ @column_list = ] N'column_list'

包装函数返回的结果集中包含的捕获列的列表。 @column_listnvarchar (max) ,默认值为 NULL。 指定 NULL 时,将包括所有捕获列。

[ @update_flag_list = ] N'update_flag_list'

包装函数返回的结果集中包含更新标志的包含列的列表。 @update_flag_listnvarchar (max) ,默认值为 NULL。 指定 NULL 时,不包括更新标志。

返回代码值

0 (成功) 或 1 (失败) 。

结果集

列名称 列类型 说明
function_name nvarchar (145) 生成的函数的名称。
create_script nvarchar(max) 创建捕获实例包装器函数的脚本。

注解

将总是生成为捕获实例创建包装所有更改查询的函数的脚本。 如果捕获实例支持 net-changes 查询,则还会生成用于生成此查询包装器的脚本。

示例

以下示例演示如何使用 sys.sp_cdc_generate_wrapper_function 为所有变更数据捕获函数创建包装。

DECLARE @wrapper_functions TABLE (
    function_name SYSNAME,
    create_script NVARCHAR(MAX)
);

INSERT INTO @wrapper_functions
EXEC sys.sp_cdc_generate_wrapper_function;

DECLARE @create_script NVARCHAR(MAX);

DECLARE #hfunctions CURSOR LOCAL FAST_FORWARD
FOR
SELECT create_script
FROM @wrapper_functions;

OPEN #hfunctions;

FETCH #hfunctions
INTO @create_script;

WHILE (@@fetch_status <> -1)
BEGIN
    EXEC sp_executesql @create_script

    FETCH #hfunctions
    INTO @create_script
END;

CLOSE #hfunctions;

DEALLOCATE #hfunctions;

另请参阅