Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Wrappery dla sieci zmieniają funkcje zapytań. Skrypty potrzebne do tworzenia tych funkcji są generowane przez procedurę sys.sp_cdc_generate_wrapper_function przechowywaną. Aby uzyskać więcej informacji o procedurze przechowywanej użytej do tworzenia sys.fn_net_changes_<capture_instance>, zobacz sys.sp_cdc_generate_wrapper_function (Transact-SQL).
Transact-SQL konwencje składni
Składnia
fn_net_changes_<capture_instance> ('start_time', 'end_time', '<row_filter_option>' )
<capture_instance> ::= The name of the capture instance.
<row_filter_option> ::=
{ all
| all with mask
| all with merge
}
Arguments
start_time
Wartość date-time , która reprezentuje najniższy koniec zakresu wpisów w tabeli zmian, które należy uwzględnić w zbiorze wyników.
Do zbioru wyników uwzględniane są tylko wiersze w tabeli cdc.<capture_instance>_CT zmian, które mają przypisany czas zatwierdzenia ściśle większy niż start_time .
Jeśli dla tego argumentu podana zostanie wartość NULL, najniższy punkt końcowy zakresu zapytań będzie odpowiadał najniższemu końcowi prawidłowego zakresu dla instancji przechwytującej.
Jeśli wartość jednego z @start_time parametrów lub @end_time jest poza czasem najniższego lub najwyższego LSN, wykonanie wygenerowanych funkcji owijających zwróci błąd 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Ten błąd powinien być obsługiwany przez dewelopera.
end_time
Wartość date-time reprezentująca najwyższy punkt końcowy zakresu wpisów w tabeli zmian, które należy uwzględnić w zbiorze wyników.
Ten parametr może przyjmować jedno z dwóch znaczeń, w zależności od wartości wybranej dla , @closed_high_end_point gdy sys.sp_cdc_generate_wrapper_function wywołuje się skrypt tworzący funkcję otoczki:
@closed_high_end_point = 1
W zestawie wyników uwzględnione są tylko wiersze w tabeli
cdc.<capture_instance>_CTzmian, które mają wartość __$start_lsn oraz odpowiadający mu czas zatwierdzenia mniejszy lub równy start_time .@closed_high_end_point = 0
W zbiorze wyników uwzględniane są tylko wiersze w tabeli
cdc.<capture_instance>_CTzmian, które mają wartość __$start_lsn oraz odpowiadający mu czas zatwierdzenia ściśle krótszy niż start_time .
Jeśli dla tego argumentu podana zostanie wartość NULL, wysoki punkt końcowy zakresu zapytań będzie odpowiadał wysokiemu końcowi prawidłowego zakresu dla instancji przechwytującej.
Jeśli wartość jednego z @start_time parametrów lub @end_time jest poza czasem najniższego lub najwyższego LSN, wykonanie wygenerowanych funkcji owijających zwróci błąd 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Ten błąd powinien być obsługiwany przez dewelopera.
<row_filter_option> ::= { wszyscy | wszyscy z maską | wszyscy z merge }
Opcja regulująca zawartość kolumn metadanych oraz wiersze zwracane w zbiorze wyników. Może to być jedna z następujących opcji:
all
Zwraca końcową treść zmienionego wiersza w kolumnach zawartości, a operację potrzebną do zastosowania wiersza w kolumnie metadanych __CDC_OPERATION.
Wszyscy w masce
Zwraca końcową treść wszystkich zmienionych wierszy w kolumnach zawartości oraz operację niezbędną do zastosowania każdego wiersza w kolumnie metadanych __CDC_OPERATION. Jeśli lista flag aktualizacji została określona podczas generowania skryptu do utworzenia funkcji wrappera, ta opcja jest wymagana do wypełnienia maski aktualizacyjnej.
wszystkie z merge
Zwraca końcową zawartość wszystkich zmienionych wierszy w kolumnach treści.
__CDC_OPERATION kolumny będzie jedną z następujących dwóch wartości:
D, jeśli wiersz musi zostać usunięty.
M, jeśli wiersz musi zostać wstawiony lub zaktualizowany.
Logika ustalająca, czy konieczne jest wstawienie lub aktualizacja, aby zastosować zmianę do obiektu docelowego, zwiększa złożoność zapytań. Używaj tej opcji dla poprawy wydajności, gdy nie jest konieczne rozróżnianie między operacjami wstawiania a aktualizacji. To podejście najlepiej sprawdza się w środowiskach docelowych, gdzie operacja merge jest dostępna bezpośrednio.
Zwracana tabela
| Nazwa kolumny | Typ kolumny | Description |
|---|---|---|
| <kolumny z @column_list> | varies | Kolumny identyfikowane w column_list argumentu do , sp_cdc_generate_wrapper_function gdy wywołuje się skrypt tworzący wrapper. Jeśli column_list jest NULL, wszystkie śledzone kolumny źródłowe pojawią się w zestawie wyników. |
| __CDC_OPERATION | nvarchar(2) | Kod operacji wskazujący, która operacja jest potrzebna, aby zastosować ten wiersz do środowiska docelowego. Operacja będzie się różnić w zależności od wartości argumentu row_filter_option podanego w następującym wywołaniu: row_filter_option = 'wszyscy', 'wszyscy w masce' 'D' - operacja usuwania 'I' - wstaw operację 'UN' - operacja aktualizacji row_filter_option = 'wszyscy z połączeniem' 'D' - operacja usuwania 'M' – albo operacja wstawania, albo aktualizacja |
| <kolumny z @update_flag_list> | bit | Flaga bitu nazywana przez dodanie _uflag do nazwy kolumny. Flaga przyjmuje wartość nie-NULL tylko wtedy, gdy row_filter_option= 'all with mask' oraz __CDC_OPERATION = 'UN'. Ustawia się go na 1, jeśli odpowiadająca kolumna została zmodyfikowana w oknie zapytania. W przeciwnym razie 0. |
Uwagi
Funkcja służy fn_net_changes_<capture_instance> jako owijacz dla cdc.fn_cdc_get_net_changes_<capture_instance> funkcji zapytania. Procedura sys.sp_cdc_generate_wrapper przechowywana służy do tworzenia skryptu dla wrappera.
Funkcje otoczenia nie są tworzone automatycznie. Aby stworzyć funkcje wrappera, musisz zrobić dwie rzeczy:
Uruchom procedurę przechowywaną, aby wygenerować skrypt do utworzenia wrappera.
Wykonaj skrypt, aby faktycznie utworzyć funkcję wrappera.
Funkcje owijania pozwalają użytkownikom systematycznie zapytywać o zmiany, które zaszły w przedziale ograniczonym wartościami daty-czasowymi , zamiast wartościami LSN. Funkcje owijacze wykonują wszystkie wymagane konwersje między podanymi wartościami czasu datowego a wartościami LSN potrzebnymi wewnętrznie jako argumenty do funkcji zapytań. Gdy funkcje owijania są używane szeregowo do przetwarzania strumienia danych zmian, zapewniają, że żadne dane nie zostaną utracone ani powtórzone, pod warunkiem przestrzegania następującej konwencji: @end_time wartość przedziału powiązanego z jednym wywołaniem jest podana jako @start_time wartość przedziału powiązanego z kolejnym wywołaniem.
Używając parametru @closed_high_end_point podczas tworzenia skryptu, możesz generować owijania obsługujące zamkniętą górną lub otwartą górną granicę w określonym oknie zapytania. Oznacza to, że możesz zdecydować, czy wpisy mające czas zatwierdzenia równy górnej granicy interwału ekstrakcji mają być uwzględnione w tym przedziale. Domyślnie jest uwzględniana górna granica.
Zbiór wyników zwracany przez funkcję owijania net changes zwraca tylko te śledzone kolumny, które znajdowały się w , @column_list gdy otoczenie zostało wygenerowane. Jeśli @column_list jest NULL, zwracane są wszystkie śledzone kolumny źródłowe. Kolumny źródłowe są poprzedzone kolumną operacji __CDC_OPERATION, która jest jedno- lub dwuznakową kolumną identyfikującą operację.
Flagi bitowe są następnie dodawane do zbioru wyników dla każdej kolumny zidentyfikowanej w parametrze @update_flag_list. Dla owijaczy net changes flagi bitowe zawsze będą NULL, jeśli , @row_filter_option używana w wywołaniu funkcji wrappera, to 'all' lub 'all with merge'. Jeśli jest @row_filter_option ustawione na 'all with mask', a __CDC_OPERATION to 'D' lub 'I', wartość flagi również będzie NULL. Jeśli __CDC_OPERATION jest 'UN', flaga zostanie ustawiona na 1 lub 0, w zależności od tego, czy operacja aktualizacji sieci spowodowała zmianę kolumny.
Szablon konfiguracji zmiany przechwytywania danych "Instancja CDC Wrapper TVFs for Schema" pokazuje, jak użyć procedury sp_cdc_generate_wrapper_function przechowywanej do uzyskania skryptów CREATE dla wszystkich funkcji wrappera dla zdefiniowanych funkcji zapytań schematu. Szablon następnie tworzy te skrypty. Więcej informacji o szablonach można znaleźć w Eksploratorze szablonów.
Funkcje sys.fn_all_changes_<capture_instance> owijającej i sys.fn_net_changes_<capture_instance> zależą od funkcji cdc.fn_cdc_get_all_changes_<capture_instance> systemowych i cdc.fn_cdc_get_net_changes_<capture_instance>. Błąd 313 jest oczekiwany, jeśli podany zakres LSN nie jest odpowiedni podczas wywoływania cdc.fn_cdc_get_all_changes_<capture_instance> lub cdc.fn_cdc_get_net_changes_<capture_instance>. Jeśli lsn_value parametr jest poza czasem najniższego lub najwyższego LSN, wykonanie tych funkcji zwróci błąd 313: Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function. Ten błąd powinien być obsługiwany przez dewelopera.