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>とsys.fn_net_changes_<capture_instance>」を参照してください。
構文
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;