Freigeben über


sys.sp_cdc_generate_wrapper_function (Transact-SQL)

Gilt für: SQL Server

Generiert Skripts zum Erstellen von Wrapperfunktionen für die Abfragefunktionen der Änderungsdatenerfassung, die in SQL Server verfügbar sind. Die in den generierten Wrappern unterstützte API ermöglicht die Angabe des Abfrageintervalls als Datums-/Uhrzeitintervall. Diese Spezifikation eignet sich gut für die Verwendung in vielen Lageranwendungen, einschließlich der Anwendungen, die von Integration Services-Paketdesignern entwickelt wurden, die Änderungsdatenerfassungstechnologie verwenden, um inkrementelle Last zu bestimmen.

Weitere Informationen zu den von sys.sp_cdc_generate_wrapper_functionihnen generierten Funktionen finden Sie unter sys.fn_all_changes_<capture_instance> und sys.fn_net_changes_<capture_instance>.

Transact-SQL-Syntaxkonventionen

Syntax

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' ]
[ ; ]

Argumente

[ @capture_instance = ] 'capture_instance'

Die Erfassungsinstanz, die skripts für @capture_instance generiert werden, ist sysname und hat einen Standardwert von NULL . Wenn ein Wert ausgelassen oder explizit auf NULLfestgelegt wird, werden Wrapperskripts für alle Aufnahmeinstanzen generiert.

[ @closed_high_end_point = ] high_end_pt_flag

Das Flagbit, das angibt, ob Änderungen, die einen Commit-Zeit haben, gleich dem hohen Endpunkt sind, innerhalb des Extraktionsintervalls durch die generierte Prozedur eingeschlossen werden. @closed_high_end_point ist bit und hat einen Standardwert von 1, der angibt, dass der Endpunkt eingeschlossen werden soll. Ein Wert von 0 gibt an, dass alle Commit-Zeiten streng kleiner als der hohe Endpunkt sind.

[ @column_list = ] N'column_list'

Eine Liste der erfassten Spalten im Resultset, die von der Wrapperfunktion zurückgegeben wird. @column_list ist nvarchar(max) und hat einen Standardwert von NULL. Wenn NULL angegeben, werden alle erfassten Spalten eingeschlossen.

[ @update_flag_list = ] N'update_flag_list'

Eine Liste der eingeschlossenen Spalten, für die ein Update-Flag in dem von der Wrapperfunktion zurückgegebenen Resultset enthalten ist. @update_flag_list ist nvarchar(max) und hat einen Standardwert von NULL. Wenn NULL angegeben, sind keine Aktualisierungskennzeichnungen enthalten.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Spaltenname Spaltentyp Beschreibung
function_name nvarchar(145) Name der generierten Funktion.
create_script nvarchar(max) Das Skript, das die Wrapperfunktion für die Aufnahmeinstanz erstellt.

Hinweise

Das Skript zur Erstellung der Wrapperfunktion für eine Abfrage aller Änderungen für eine Aufzeichnungsinstanz wird immer generiert. Wenn die Aufnahmeinstanz Net-Changes-Abfragen unterstützt, wird auch das Skript zum Generieren eines Wrappers für diese Abfrage generiert.

Beispiele

Das folgende Beispiel zeigt, wie Sie mit sys.sp_cdc_generate_wrapper_function Wrapper für alle Change Data Capture-Funktionen erstellen.

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;