Udostępnij za pośrednictwem


cdc.<capture_instance>_CT (Transact-SQL)

Tabela zmian tworzona z chwilą włączenia funkcji przechwytywania zmian danych dla tabeli źródłowej.Tabela zawiera jeden wiersz dla każdej operacji wstawienia i usunięcia oraz dwa wiersze dla każdej operacji aktualizacji wykonanej na tabeli źródłowej.Jeśli w momencie włączania funkcji przechwytywania dla tabeli źródłowej nazwa tabeli zmian nie jest określona, system tworzy ją automatycznie.Nazwa tabeli ma format cdc.wystąpienie_funkcji_przechwytywania_CT, gdzie wystąpienie_funkcji_przechwytywania jest nazwą schematu tabeli źródłowej rozpisaną do formatu schemat_tabeli.Jeśli na przykład funkcja przechwytywania zmian danych zostanie włączona dla tabeli Person.Address znajdującej się w przykładowej bazie danych AdventureWorks, powstała tabela zmian będzie miała nazwę cdc.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> funkcje.

Nazwa kolumna

Typ danych

Description

__ $ start_lsn

binary(10)

Skompilowany plan wejściowy

Wszystkie zmiany w tej samej transakcji współużytkowanie tej samej transakcji LSN.Na przykład, jeżeli operacja usuwania na urządzenie źródłowe tabelę usuwa dwa wiersze, w tabela Zmiana będzie zawierać dwa wiersze, każdy z tą samą __ $ start_lsn wartość.

Rozszerzona procedura

binary(10)

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

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

__ $ seqval

binary(10)

Sekwencja, która służy do zmiany wiersza w obrębie transakcji zamówienia.

Operacja $ __

int

Środowisko CLR skompilowany FUNCMoże być jedną z następujących czynności:

1 = delete

2 = wstawiania

Środowisko CLR skompilowany %

ObjType

Typ obiektu.

Procedura

__ $ update_mask

varbinary(128)

Przetworzone

<przechwycone urządzenie źródłowe kolumn tabela>

zmienia się

Gotowa instrukcjaAdhoc

Remarks

Typy danych z przechwytywanych kolumn

ReplProc

  • Timestamp kolumny są zdefiniowane jako binary(8).

  • Identity kolumny są zdefiniowane jako int lub bigint.

SysTab

W tej wersji typy danych wprowadzonych w SQL Server 2008 nie są obsługiwane.

Ograniczenie typu CHECK

W przypadku typów dane LOB varchar(max), nvarchar(max), varbinary(max), image, text, ntext, a xml, stare wartości zostaną wyświetlone w wierszu stare aktualizacji, jeśli kolumna rzeczywiście zmienione podczas aktualizacji. sys.dm_exec_sql_text

sys.dm_exec_query_planAby zwiększyć ten rozmiar do obsługi większych dane LOB, użyj Opcja Rozmiar repl Max tekstu , aby określić większy rozmiar maksymalny.Aby uzyskać więcej informacji zobaczHow to: Configure the max text repl size Option (SQL Server Management Studio).

Modyfikacje języka opisu danych

Zmiany w języku DDL urządzenie źródłowe tabela, takich jak dodanie lub usunięcie kolumny, są rejestrowane w CDC.ddl_history tabela.W poniższym przykładzie są zwracane wszystkie buforowane zapisów, które zostały użyte więcej niż jeden raz instrukcję SQL.Zwracanie planów kwerend dla wszystkich wyzwalaczy pamięci podręcznejW poniższym przykładzie są zwracane planów kwerend wszystkich wyzwalaczy pamięci podręcznej.Zwracanie opcji zestaw, z którymi został skompilowany plan

Zmiana typu danych w kolumnie tabeli źródłowej jest również odnotowywana w tabeli cdc.ddl_history,nie powoduje jednak zmodyfikowania definicji tabeli zmian.Typ danych przechwytywanej kolumny w tabeli zmian jest zmieniany w przypadku, gdy proces przechwytywania wykryje w dzienniku wpis modyfikacji języka DDL tabeli źródłowej.

Jeśli trzeba zmienić typ danych przechwytywanej kolumny w tabeli źródłowej w sposób, który spowoduje zmniejszenie rozmiaru danych, należy użyć poniższej procedury, która zagwarantuje pomyślną modyfikację odpowiadającej jej kolumny w tabeli zmian.

  1. Zwracanie podział pamięci wszystkie buforowane plany skompilowanyNa przykład, jeśli zostanie zmieniony typ danych z int Aby smallint, aktualizacja do rozmiaru, która mieści się wartości smallint zakres jest-32 768 do 32 767.

  2. sp_xml_preparedocument (języka Transact-SQL)

  3. Zmodyfikuj tabelę źródłową, określając dla niej nowy typ danych.Modyfikacja typu zostanie pomyślnie powielona w tabeli zmian.

Modyfikacje języka edycji danych

Operacje wstawiania, aktualizowania i usuwania wykonywane na tabeli źródłowej z włączoną funkcją przechwytywania zmian danych są rejestrowane w dzienniku transakcji bazy danych.Proces przechwytywania zmian danych pobiera informacje o tych zmianach z dziennika transakcji, po czym dodaje jeden lub dwa wiersze do tabeli zmian w celu ich odnotowania.Wpisy są umieszczane w tabeli zmian w kolejności, w jakiej zostały zatwierdzone w tabeli źródłowej, chociaż zazwyczaj zatwierdzania wpisów w tabeli zmian dokonuje się grupowo, nie indywidualnie.

We wpisie w tabeli zmian kolumna __$start_lsn odnotowuje numer kolejny zatwierdzenia odnoszący się do wprowadzenia zmiany w tabeli źródłowej, natomiast kolumna __$seqval column określa kolejność zmiany w granicach transakcji.Łącznie obie te kolumny metadanych gwarantują zachowanie kolejności zmian, w jakiej zostały one wprowadzone w tabeli źródłowej.Ponieważ w procesie przechwytywania informacje o zmianach są pobierane z dziennika transakcji, należy pamiętać, że wpisy w tabeli zmian nie będą wyświetlane synchronicznie z odpowiadającymi im zmianami dokonanymi w tabeli źródłowej.Wyświetlanie odbywa się asynchronicznie, gdy proces przechwytywania zakończy przetwarzanie odpowiednich wpisów zmian pobranych z dziennika transakcji.

W przypadku operacji wstawiania i usuwania wszystkie bity w masce aktualizacji pozostają bez zmian.W przypadku operacji aktualizowania następuje modyfikacja masek aktualizacji w wierszach aktualizowania danych starych i nowych. Modyfikacja ta odzwierciedla zmiany w kolumnach zaistniałe podczas aktualizacji.