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_list为 nvarchar(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;