Aracılığıyla paylaş


cdc.fn_cdc_get_all_changes_<capture_instance> (Transact-SQL)

Belirtilen günlük sıra numarası (SSN) aralık kaynaktablo uygulanan her değişiklik için bir satır döndürür. kaynak satır aralığında birden fazla değişikliği olsaydı, her değişikliği döndürülen sonuç kümesitemsil edilir.Dört meta veriler sütunları değiştir veriyor yanı sıra, başka bir veri kaynakdeğişiklikleri uygulamak için gereken bilgileri sağlar.Satır filtreleme seçenekleri meta veriler sütunları yanı sıra sonuç kümesidöndürülen satırların içeriğini yönetir.Zaman 'all' Satır filtre seçeneği belirtilirse, her değişikliği değişikliği tanımlamak için bir satır vardır.Zaman 'tüm güncelleştirme eski' seçeneği belirtilirse, güncelleştirme işlemi iki satır gösterilir: bir güncelleştirmeyi ve başka bir güncelleştirme sonrasında yakalanan sütun değerleri içeren önce yakalanan sütun değerleri içeren.

Bu numaralandırma işlev , bir kaynaktablo Değiştir veri yakalama için etkinleştirilmiş olduğunu saat oluşturulur. işlev adından türetilir ve biçimini kullanan **cdc.fn_cdc_get_all_changes_**capture_instance burada capture_instance , kaynaktablo Değiştir veri yakalama için etkin olduğunda yakalama örnek için belirtilen değer.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

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

Bağımsız değişkenler

  • from_lsn
    sonuç kümesieklemek için SSNaralık düşük bitiş noktası temsil eden SSN değeri. from_lsnis binary(10).

    İçinde yalnızca satırları HDM. [[capture_instance] _ct tablo içinde bir değerle değiştirmek __$ start_lsn değerinden büyük veya eşit from_lsn sonuç kümesidahil.

  • to_lsn
    sonuç kümesieklemek için SSNaralık yüksek bitiş noktası temsil eden SSN değeri. to_lsnis binary(10).

    İçinde yalnızca satırları HDM. [capture_instance] _ct tablo içinde bir değerle değiştirmek __$ start_lsn 'den küçük veya eşit from_lsn veya eşit to_lsn sonuç kümesidahil.

  • <row_filter_option> :: = {tüm | tüm eski güncelleştirme}
    meta veriler sütunları yanı sıra sonuç kümesidöndürülen satırların içeriğini yöneten bir seçenek.

    Aşağıdakilerden biri olabilir:

    • Tümü
      Belirtilen SSN aralıkiçinde tüm değişiklikleri döndürür.Değişiklikler için nedeniyle güncelleştirme işlemi, bu seçenek yalnızca güncelleştirme uygulandıktan sonra yeni değerleri içeren satır döndürür.

    • tüm eski güncelleştirme
      Belirtilen SSN aralıkiçinde tüm değişiklikleri döndürür.Değişiklikler için nedeniyle güncelleştirme işlemi, bu seçenek sütun değerlerini güncelleştirme öncesinde içeren satır ve sütun değerlerini güncelleştirme sonrasında içeren satır döndürür.

Dönen Tablo

Sütun adı

Veri türü

Açıklama

__$ start_lsn

binary(10)

Tamamlama SSN değişikliği yürütme sırasını koruyan değişikliği ile ilişkili.Aynı harekette kaydedilen değişiklikleri aynı yürütme SSN değerini paylaşır.

__$ seqval

binary(10)

Bir hareket içinde bir satırın sipariş değişiklikler için kullanılan sıra değeri.

__$ işlemi

int

hedef veri kaynakDeğiştir veri satırı uygulamak için gerekli veri işleme dili (DML) işlemi tanımlar.Aşağıdakilerden biri olabilir:

1 = delete

2 = Ekle

3 = güncelleştirme (yakalanan sütun değerleri tür güncelleştirme işleminden önce olanlar).Bu değer yalnızca, satır filtre seçeneği 'tüm eski güncelleştirme' geçerlidir. belirtilir.

4 = Güncelleştirme (yakalanan sütun değerleri tür güncelleştirme işlemi sonra olanlar)

__$ update_mask

varbinary(128)

Yakalama örnekiçin tanımlanan her yakalanan sütun karşılık gelen bit bit maskesi.Bu değer tüm bitleri küme 1 zaman tanımladığı __$ işlemi = 1 veya 2.Zaman __$ işlemi değişen sütun karşılık gelen bitlerinin küme 1 yalnızca = 3 veya 4.

<Yakalanan kaynak tablo sütunları>

değişir

' % S'işlevi işlev tarafından döndürülen kalan sütunları yakalama örnek oluşturulduğunda tanımlanan yakalanan sütunları olan.Hiçbir sütun yakalanan sütun listede belirtilmiş olması durumunda kaynak tablo tüm sütunları döndürülür.

İzinler

Üyelik gerektiren sysadmin sabit sunucu rolü veya db_owner veritabanı rolüsabit.Diğer tüm kullanıcılar için kaynak tablo yakalanan tüm sütunların select izni gerektirir ve yakalama örnek gating rol tanımlanmışsa, bu veritabanı rolüüyeliği.Arayan kaynak veri görüntüleme izni yoksa, işlev hata 229 verir ("izni seçin, nesne '... fn_cdc_get_all_changes_' veritabanı engellendi '<DatabaseName>', şema 'HDM'.").

Açıklamalar

Belirtilen SSN aralık içinde değişiklik yakalama örnekiçin zaman çizelgesi izleme düşmüyor, işlev 208 hata verir ("yetersiz sayıda bağımsız değişken için yordam veya işlev cdc.fn_cdc_get_all_changes verildi.").

Sütun veri türü image, text, ve ntext her zaman NULL değeri atanır ne zaman değer __$ işlemi = 1 veya __$ işlemi = 3.Sütun veri türü varbinary(max), varchar(max), veya nvarchar(max) null atanır ne zaman değer __$ işlemi sütun güncelleştirme sırasında değiştirmediyse = 3.Zaman __$ işlemi = 1, bu sütunları Sil saat kendi değeri atanır.Yakalama örnek , her zaman dahil hesaplanan sütunlar null bir değere sahip.

Örnekler

Birkaç SQL Server Management Studio şablonları kullanılabilir değişiklik veri yakalama sorgu işlevleri. nasıl GösterBu şablonlar kullanılabilir View menüde Management Studio.Daha fazla bilgi için, bkz. SQL Server Management Studio şablonları kullanma.

Bu örnekte gösterildiği Enumerate All Changes for Valid Range Template.işlevkullanırcdc.fn_cdc_get_all_changes_HR_Department Yakalama örnekşu anda kullanılabilir olan tüm değişiklikleri bildirmek için HR_Department, kaynaktablotarifelerinin uygulandığı HumanResources.Department , AdventureWorks2008R2 veritabanı.

-- ==================================================
-- 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