ZOZ.<capture_instance>_CT (języka Transact-SQL)

Zmienianie tabela jest tworzona podczas przechwytywania danych zmian jest włączona wtabela źródło. tabela zwraca jeden wiersz dla każdego Wstawianie i usuwanie operacji przeprowadzana na podstawietabela źródłoi dwa wiersze dla każdej aktualizacji przeprowadzana na podstawietabela źródło. Jeśli nie określono nazwy tabela zmiana w czastabela źródłojest włączone, nazwa pochodzi. Format nazwy jest ZOZ.capture_instance_CT gdzie capture_instance to nazwa schematutabela źródłoi nazwatabela źródłow formacie schema_table. Na przykład jeśli w tabela Person.Address w AdventureWorks2008R2 Przykładowa baza danych jest włączone do przechwytywania danych zmian, byłoby pochodnych Zmień nazwę tabela ZOZ.Person_Address_CT.

Zaleca się, że nie kwerendę tabele systemowe bezpośrednio.Zamiast tego należy wykonać cdc.fn_cdc_get_all_changes_<capture_instance> i cdc.fn_cdc_get_net_changes_<capture_instance> funkcji.

Nazwa kolumny

Typ danych

Opis

__$ start_lsn

binary(10)

Kolejny numer dziennika (LSN) skojarzonych z transakcją zatwierdzanie zmiany.

Wszystkie zmiany w tej samej transakcji współużytkować te same zatwierdzanie LSN.Na przykład, jeśli operacja usuwania wtabela źródłousuwa dwa wiersze, zmiana tabela będzie zawierać dwa wiersze, każdy z tą samą __$ start_lsn wartości.

__$ end_lsn

binary(10)

Określone tylko w celach informacyjnych. Nieobsługiwane. Przyszła zgodność nie jest gwarantowana.

W SQL Server 2008, ta kolumna ma zawsze wartość NULL.

__$ seqval

binary(10)

Sekwencyjny wartość używana do zmiany wiersza w obrębie transakcji zamówienia.

__$ operacji

int

Identyfikuje operację język edycji danych (DML), związane ze zmianą.Może mieć jedną z następujących czynności:

1 = delete

2 = Wstaw

3 = aktualizacji (wartości stare)

Kolumny danych zawiera wartości wierszy przed wykonaniem instrukcjaupdate.

4 = aktualizacji (nowe wartości)

Kolumny danych zawiera wartości wiersza po wykonaniu instrukcjaupdate.

__$ update_mask

varbinary(128)

Maska bitów na podstawie porządkowe kolumna identyfikacji tych kolumn, które zmieniono zmiana tabela .

<kolumnytabela przechwyconych źródło >

zmienia się

Pozostałe kolumny w tabela zmiana są kolumny ztabela źródło, które zostały zidentyfikowane jako kolumny przechwyconych podczas przechwytywania wystąpienie zostało utworzone. Jeśli określono żadnych kolumn na liście przechwyconych kolumna w tej tabelaznajdują się wszystkie kolumny wtabela źródło.

Uwagi

Przechwycone typów danych kolumn

Przechwycone kolumn znajdujących się w tej tabela mają ten sam typ danych i wartości jako źródło kolumny z następującymi wyjątkami:

  • Timestampkolumny są zdefiniowane jako binary(8).

  • Identitykolumny są zdefiniowane jako int lub bigint.

Jednakże wartości w tych kolumnach są takie same, jak wartoocikolumna źródło.

Typy danych obiektu duże

Dla typów dane LOB varchar(max), nvarchar(max), varbinary(max), image, text, ntext, i xml, stara wartość tylko pojawi się w wierszu starych aktualizacji, jeśli kolumna rzeczywiście zmienione podczas aktualizacji.Dla innych typów danych wartość kolumna zawsze będą wyświetlane w obu wierszy aktualizacji.

Domyślnie maksymalny rozmiar, który można dodać do przechwyconych kolumna w pojedynczej INSERT, UPDATE, WRITETEXT lub UPDATETEXT instrukcja jest 65 536 bajtów lub 64 KB.Aby zwiększyć rozmiar do obsługi większych dane LOB, użyj opcji rozmiar tekstu max repl określić większy rozmiar maksymalny.Aby uzyskać więcej informacji, zobacz Jak Skonfigurować maksymalny rozmiar repl opcji (SQL Server Management Studio).

Modyfikacji języka definicji danych

ModyfikacjeDDL źródłotabela, takich jak dodanie lub usunięcie kolumny, są rejestrowane w cdc.ddl_historytabela. Zmiany te nie są stosowane do zmian w tabela.Oznacza to, że definicja tabela zmiana pozostaje stała.Przy wstawianiu wierszy do tabelazmiana, proces przechwytywania ignoruje tych kolumn, które nie pojawiają się na liście przechwyconych kolumna związane ztabela źródło. Jeśli kolumna jest wyświetlana na liście przechwyconych kolumna , która nie jest już wtabela źródło, kolumna jest przypisywana wartość null .

Zmiana typu danych kolumna wtabela źródłojest zarejestrowany w cdc.ddl_historytabela. Jednak ta zmiana zmieniać definicji tabelazmiana.Typ danych przechwyconych kolumna w tabela zmiana zostaje zmodyfikowana, gdy proces przechwytywania napotka rekord dziennika zmian DDL natabela źródło.

Jeśli potrzebujesz zmienić typ danych przechwyconych kolumna ztabela źródłow taki sposób, że zmniejszenie rozmiaru typu danych, wykonaj następujące kroki, aby upewnić się, że równoważna kolumna w tabela zmiana można pomyślnie zmodyfikowana.

  1. źródłotabelaaktualizacja wartości w kolumna można modyfikować, aby dopasowanie do rozmiaru typu danych planowane. Na przykład zmienić typ danych z int do smallint, zaktualizować wartości do rozmiaru, który mieści się w smallint zakres-32 768 do 32 767.

  2. Zmienianie tabelawykonywania tej samej operacji aktualizacji do równoważna kolumna.

  3. Zmienianie źródło tabela przez określenie nowego typu danych.Zmiana typu danych zostanie pomyślnie przekazane do zmiana tabela.

Modyfikacji języka manipulacji danych

Insert, update i operacji usuwania są wykonywane na zmianę przechwytywania włączone źródłodanychtabela, rekord te operacje DML pojawia się w dzienniku transakcji bazy danych. Przechwytywanie danych zmiana przechwytywania proces pobiera informacje o tych zmianach z dziennika transakcji i dodaje jeden lub dwa wiersze do zmiany tabela , aby rejestrować zmiany.Wpisy są dodawane do zmiany tabela w tej samej kolejności były zaangażowane w źródło tabela, chociaż zatwierdzanie wpisów tabela zmiana zazwyczaj musi być wykonana na grupy zmian zamiast dla pojedynczego wpisu.

W obrębie wpisu tabela zmiana __$ start_lsn kolumna jest używana do rejestrowania zatwierdzanie LSN jest skojarzony z Zmień źródło tabelai seqval $ __ kolumna służy do zmiany w obrębie transakcji zamówienia.Razem te kolumny metadane służą do upewnij się, że zachowuje zamówienia zatwierdzanie zmiany źródło .Ponieważ proces przechwytywania uzyskuje jego Zmień informacje z dziennika transakcji, to należy zauważyć, że wpisy tabela zmiany nie pojawiają się synchronicznie z ich odpowiednich zmian wtabela źródło. Zamiast tego odpowiednie zmiany pojawiają się asynchronicznie, po proces przechwytywania przetworzył wpisy istotnych zmian z dziennika transakcji.

Do wstawiania i operacji usuwania, wszystkie bity maski aktualizacji są zestaw.Operacje aktualizacji, aktualizacji maski w obu aktualizacji stare i aktualizacja nowych wierszy zostanie zmodyfikowany w celu odzwierciedlenia kolumn, które zmieniono podczas aktualizacji.