Udostępnij za pośrednictwem


CDC.fn_cdc_get_all_changes_<capture_instance> (języka Transact-SQL)

Zwraca jeden wiersz dla każdej zmiany zastosowane źródło tabela określonej numer sekwencyjny dziennika (LSN) zakres.Wiersza źródło gdyby wiele zmian w przedziale, każda zmiana jest reprezentowany w zwracane zestaw wyników.Oprócz zwracania Zmień dane, cztery kolumny metadane zawierają informacje potrzebne do zastosowania zmian do danych innego źródło.Opcje filtrowania wierszy określają zawartość kolumny metadane , jak również wierszy zwracanych w zestaw wyników.Po 'wszystkie' określono opcję Filtr wiersza, każda zmiana ma dokładnie jeden wiersz, aby zidentyfikować zmianę.Po "wszystkich aktualizacji stare" Określona opcja, operacje aktualizacji są przedstawiane jako dwa wiersze: jeden zawierający wartości przechwycone kolumny przed aktualizacji, a drugi zawierający wartości kolumny przechwycone po aktualizacji.

Wyliczanie funkcja jest tworzony w czas włączenia do przechwytywania danych zmiana źródło tabela .Nazwa funkcja wywodzi się i korzysta z formatu **cdc.fn_cdc_get_all_changes_**capture_instance gdzie capture_instance jest wartość określona dla przechwytywania wystąpienie po włączeniutabela źródłow celu zmiany przechwytywania danych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

cdc.fn_cdc_get_all_changes_capture_instance ( from_lsn , to_lsn , '<row_filter_option>' )

<row_filter_option> ::=
{ all
 | all update old
}

Argumenty

  • from_lsn
    Reprezentuje niskie końcowy LSNzakres w zestaw wynikówwartość LSN . from_lsnis binary(10).

    Tylko wiersze w ZOZ. [capture_instance] _CT zmian w tabela z wartością w __$ start_lsn równe lub większe niż from_lsn znajdują się w zestaw wyników.

  • to_lsn
    Reprezentuje wysokie końcowy LSNzakres w zestaw wynikówwartość LSN . to_lsnis binary(10).

    Tylko wiersze w ZOZ. [capture_instance] _CT zmian w tabela z wartością w __$ start_lsn mniejsza lub równa from_lsn lub równa to_lsn znajdują się w zestaw wyników.

  • <row_filter_option> :: = {wszystkie | zaktualizować wszystkie stare}
    Opcja reguluje zawartość kolumny metadane , jak również wierszy zwracanych w zestaw wyników.

    Może mieć jedną z następujących opcji:

    • wszystkie
      Zwraca wszystkie zmiany w określonymzakres LSN. Zmian z powodu operacji aktualizacji tej opcji zwraca tylko wiersz zawierający nowe wartości po zastosowaniu tej aktualizacji.

    • Zaktualizuj wszystkie stare
      Zwraca wszystkie zmiany w określonymzakres LSN. Dla zmian z powodu operacji aktualizacji tej opcji zwraca wiersz zawierający kolumna wartości przed aktualizacją i wiersz zawierający wartości kolumna po aktualizacji.

Zwracana tabela

Nazwa kolumny

Typ danych

Opis

__$ start_lsn

binary(10)

Zatwierdzeń LSN skojarzone zmiany, która pozwala zachować kolejność zatwierdzanie zmiany.Zmiany w tej samej transakcji mają tę samą wartośćLSN zatwierdzanie.

__$ seqval

binary(10)

Sekwencja wartość używana do zmiany kolejności wierszy w obrębie transakcji.

__$ operacji

int

Identyfikuje operację język edycji danych (DML), niezbędnych do zastosowania wiersz danych zmiana miejsce docelowe danych źródło.Może mieć jedną z następujących czynności:

1 = delete

2 = Wstaw

3 = aktualizacji (przechwyconych kolumna wartości są przed wykonaniem operacji aktualizacji).Wartość ta ma zastosowanie tylko, gdy filtr wiersza opcji, "zaktualizować wszystkie stare" jest określony.

4 = aktualizacji (przechwyconych kolumna wartości są po operacji aktualizacji)

__$ update_mask

varbinary(128)

Maska bitowa bitem odpowiadającą każdej przechwyconych kolumna określone wystąpienieprzechwytywania.Wartość ta ma wszystkie zdefiniowane bitów zestaw do 1 gdy operacji $ __ = 1 lub 2.Gdy operacji $ __ = 3 lub 4, tylko tych bitów odpowiadającej kolumn, które zmiany są zestaw na wartość 1.

<kolumnytabela przechwyconych źródło >

zmienia się

Pozostałe kolumny zwracana przez funkcja jest przechwyconych kolumn zidentyfikowane podczas przechwytywania wystąpienie zostało utworzone.Jeżeli podane zostały żadne kolumny na liście przechwyconych kolumna , zwracane są wszystkie kolumny wtabela źródło.

Uprawnienia

Wymaga członkostwa w sysadmin stała rola serwera lub db_owner rola bazy danychstałej.Dla innych użytkowników wymaga uprawnienie SELECT wszystkich przechwyconych kolumn wtabela źródłoi, jeśli zdefiniowano bramkowania roli przechwytywania wystąpienie członkostwo w tej rola bazy danych. Gdy obiekt wywołujący nie ma uprawnień do wyświetlania danych źródło , funkcja zwraca błąd 229 ("zaznacz była odmowa uprawnień dla obiektu"fn_cdc_get_all_changes_...", bazy danych '<DatabaseName>", schematu "ZOZ". ").

Uwagi

Jeśli określonyzakres LSNnie wchodzą w osi czasu wystąpienieprzechwytywania śledzenia zmian, funkcja zwraca błąd 208 ("niewystarczającą liczbę argumentów były dostarczane do cdc.fn_cdc_get_all_changes procedury lub funkcja .").

Kolumny Typ danych image, text, i ntext zawsze są przypisywane NULL wartość, gdy operacji $ __ = 1 lub operacji $ __ = 3.Kolumny Typ danych varbinary(max), varchar(max), lub nvarchar(max) są przypisywane NULL wartość, gdy operacji $ __ = 3, chyba że kolumna zmieniona podczas aktualizacji.Gdy operacji $ __ = 1, kolumny te są przypisane ich wartości w czas delete.Kolumny obliczane, zawarte w przechwytywania wystąpienie zawsze mieć wartości NULL.

Przykłady

Kilka SQL Server Management Studio Szablony są dostępne, pokazują, jak używać Zmień dane przechwytywania kwerendy funkcji.Szablony te są dostępne na widoku menu w Management Studio.Aby uzyskać więcej informacji, zobacz Przy użyciu programu SQL Server Management Studio szablonów.

W tym przykładzie przedstawiono Enumerate All Changes for Valid Range Template.Używa funkcjacdc.fn_cdc_get_all_changes_HR_Department do raportu wszystkie zmiany aktualnie dostępne dla przechwytywania wystąpienie HR_Department, który jest zdefiniowany dlatabela źródło HumanResources.Department w AdventureWorks2008R2 bazy danych.

-- ==================================================
-- Enumerate All Changes for Valid Range Template
-- ==================================================
USE AdventureWorks2008R2;
GO

DECLARE @from_lsn binary(10), @to_lsn binary(10)
SET @from_lsn =
   sys.fn_cdc_get_min_lsn('HR_Department')
SET @to_lsn   = sys.fn_cdc_get_max_lsn()
SELECT * FROM cdc.fn_cdc_get_all_changes_HR_Department
  (@from_lsn, @to_lsn, N'all');
GO