cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)
Zwraca jeden wiersz dla każdej zmiany zastosowane do urządzenie źródłowe tabela do zakres określonego dziennika sekwencji numer (LSN).Jeśli urządzenie źródłowe wiersz ma wiele zmian w przedziale, każda zmiana jest reprezentowana zestaw wyników zwracanych.Oprócz zwracania danych zmian, cztery kolumny metadane zawierają informacje, należy zastosować zmiany do danych innego urządzenie źródłowe.Opcje filtrowania wierszy określają zawartość kolumny metadane, jak również wierszy zwracanych zestaw wyników.Po 'all' opcji filtr wiersza, każda zmiana ma dokładnie jeden wiersz w celu zidentyfikowania zmiany.Po określeniu opcji "wszystkie zaktualizować stare" operacji aktualizacji są przedstawiane jako dwa wiersze: jedna zawiera wartości przechwyconych kolumn przed aktualizacji, a drugi zawierający wartości w kolumnach przechwyconych po aktualizacji.
Ta funkcja wyliczenie jest tworzony w momencie, urządzenie źródłowe tabela jest włączony do przechwytywania danych zmian.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 przy wystąpieniu urządzenie źródłowe tabela jest włączony do przechwytywania danych zmian.
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
The LSN value that represents the low endpoint of the LSN range to include in the result set.from_lsn is binary(10).Tylko wiersze w _CT CDC. [capture_instance zmian w tabela z wartością w __ $ start_lsn równe lub większe niżfrom_lsn są uwzględniane zestaw wyników.
to_lsn
The LSN value that represents the high endpoint of the LSN range to include in the result set.to_lsn is binary(10).Tylko wiersze w _CT CDC. [capture_instance zmian w tabela z wartością w __ $ start_lsn mniejsze lub równe do from_lsn lub równy to_lsn są uwzględniane zestaw wyników.
row_filter_option < >:: = {wszystkie | zaktualizować wszystkie stare}
Opcja, która reguluje zawartość kolumny metadane, jak również wierszy zwracanych zestaw wyników.Może mieć jedną z następujących opcji:
wszystkie
Zwraca wszystkie zmiany w określonym zakresie LSN.Zmian z powodu operacji aktualizacji opcja zwraca tylko wiersz zawierający nowe wartości po zastosowaniu tej aktualizacji.Zaktualizuj wszystkie stare
Zwraca wszystkie zmiany w określonym zakresie LSN.W przypadku zmian z powodu operacji aktualizacji tę opcję, zwracana jest wiersz zawierający kolumna wartości przed aktualizacją i wiersz zawierający wartości kolumna po aktualizacji.
Zwracana tabela
Nazwa kolumna |
Typ danych |
Description |
---|---|---|
__ $ start_lsn |
binary(10) |
Zatwierdzanie LSN skojarzone zmiany, która pozwala zachować porządek zatwierdzania zmian.Zmiany w tej samej transakcji udziału transakcji tej samej wartości LSN. |
__ $ seqval |
binary(10) |
Sekwencja, która służy do zmiany kolejności wierszy w obrębie transakcji. |
Operacja $ __ |
int |
Identyfikuje operację języka (DML) manipulacji danych potrzebnych do wiersza zawierającego dane, zmiany są stosowane do danych docelowych urządzenie źródłowe.Może być jedną z następujących czynności: 1 = delete 2 = wstawiania 3 = aktualizacji (przechwyconych kolumna wartości są przed wykonaniem operacji aktualizacji).Wartość ta ma zastosowanie wyłącznie podczas filtrowania wierszy opcji 'wszystkie zaktualizować stare' został określony. 4 = aktualizacji (przechwyconych kolumna wartości są po wykonaniu operacji aktualizacji) |
__ $ update_mask |
varbinary(128) |
Maska bitów bitem odpowiadające każdej kolumna przechwyconych określonych dla wystąpienie przechwytywania.Ta wartość wszystkich zdefiniował bitów zestaw do 1 gdy Operacja $ __ = 1 or 2.Kiedy Operacja $ __ = 3 lub 4, tylko do tych, które bity odpowiadający kolumny, które zmiany są ustawione na 1. |
<przechwycone urządzenie źródłowe kolumn tabela> |
zmienia się |
Pozostałe kolumny zwróconych przez funkcja są kolumny przechwycone, określone podczas tworzenia wystąpienie przechwytywania.Jeśli żadne kolumna zostały określone na liście kolumn przechwycone, wszystkie kolumna w urządzenie źródłowe tabela są zwracane. |
Uprawnienia
Członkostwo w grupie wymaga sysadmin Rola serwera lub db_owner stała rola bazy danych.W przypadku wszystkich innych użytkowników wymaga uprawnienie SELECT do wszystkich przechwyconych kolumn w tabela źródłowej i zdefiniowano bramkowania roli dla wystąpienie przechwytywania członkostwo w tej bazy danych roli.Gdy obiekt wywołujący nie ma uprawnień do wyświetlania danych źródłowych, funkcja zwraca błąd 229 ("SELECT został odmowa uprawnień dla obiektu „ fn_cdc_get_all_changes_...", bazy danych „<NazwaBazyDanych>", schemat"cdc".").
Remarks
Jeśli określony zakres LSN nie wchodzi w zmian osi czasu wystąpienie przechwytywania, funkcja zwraca błąd 208 ("O niewystarczającą liczbę argumentów dostarczono dla cdc.fn_cdc_get_all_changes procedury lub funkcji.").
Kolumny Typ danych image, text, a ntext Przydzielono wartość NULL podczas wartość Operacja $ __ = 1 or Operacja $ __ = 3.kolumna Typ danych varbinary(max), varchar(max), lub nvarchar(max) wartość NULL przypisywane są wartości, kiedy Operacja $ __ = 3, chyba że kolumna zmieniony podczas aktualizacji.Kiedy Operacja $ __ = 1, kolumny te są przypisane wartości na czas z delete.Kolumny obliczane, które są uwzględnione w instancji przechwytywania zawsze ma wartość NULL.
Przykłady
Kilka SQL Server Management Studio Szablony są dostępne, pokazują, jak zmiana funkcji kwerendy przechwytywania danych. Szablony te są dostępne na Widok menu in Management Studio. Aby uzyskać więcej informacji zobaczUsing SQL Server Management Studio Templates.
W tym przykładzie przedstawiono Enumerate All Changes for Valid Range Template. Używa funkcja cdc.fn_cdc_get_all_changes_HR_Department Aby zgłosić wszystkie zmiany aktualnie dostępne dla wystąpienie przechwytywania HR_Department, który jest zdefiniowany dla urządzenie źródłowe HumanResources.Department w tabela AdventureWorks Baza danych.
-- ==================================================
-- Enumerate All Changes for Valid Range Template
-- ==================================================
USE AdventureWorks
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
See Also