sys.sp_cdc_generate_wrapper_function (Transact-SQL)

適用対象:SQL Server

SQL Server で使用できる変更データ キャプチャ クエリ関数のラッパー関数を作成するスクリプトを生成します。 生成されたラッパーでサポートされている API を使用すると、クエリ間隔を datetime 間隔として指定できます。 この仕様により、変更データ キャプチャ テクノロジを使用して増分読み込みを決定する 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_listは nvarchar(max) で、既定値は NULL です。 NULL を指定すると、更新フラグは含まれません。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

列名 列の種類 説明
function_name nvarchar(145) 生成された関数の名前。
create_script nvarchar(max) capture-instance ラッパー関数を作成するスクリプト。

解説

キャプチャ インスタンスのすべての変更クエリをラップする関数を作成するスクリプトは、常に生成されます。 キャプチャ インスタンスが 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;