Aracılığıyla paylaş


CDC.fn_cdc_get_all_changes_<capture_instance> (Transact-sql)

Belirtilen günlük sıra numarası (lsn) aralığında kaynak tablo uygulanan her değişiklik için bir satır döndürür. Kaynak satır aralığında birden fazla değişiklik olsaydı, her değişikliği döndürülen sonuç kümesinde gösterilir. Değişiklik veri döndüren yanı sıra dört meta veri sütunları değişiklikleri başka bir veri kaynağına uygulamak için gereken bilgileri sağlar. Satır filtre seçenekleri, meta veri sütunları yanı sıra sonuç kümesinde döndürülen satırların içeriğini yönetir. Ne 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. Ne zaman 'tüm güncelleştirme eski' seçeneği belirtilirse, güncelleştirme işlemlerini iki satır gösterilir: bir güncelleştirme ve başka bir güncelleştirme sonrasında yakalanan sütun değerlerini içeren önce yakalanan sütun değerlerini içeren.

Bu numaralandırma işlevi, değişiklik veri yakalama için bir kaynak tablo etkin anda oluşturulur. İşlev adından türetilir ve biçimini kullanan **cdc.fn_cdc_get_all_changes_**capture_instance nereye capture_instancekaynak tablo Değiştir veri yakalama için etkin olduğunda yakalama örneği için belirtilen değer.

Konu bağlantısı simgesi Transact-SQL Sözdizim 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çta eklemek için lsn aralığı düşük bitiş noktası temsil eden lsn değerini ayarlayın. from_lsnis binary(10).

    İçinde yalnızca satırları cdc. [capture_instance] _ct bir değer içeren tabloyu değiştirmek __$ start_lsn değerinden büyük veya eşit from_lsnsonuç kümesinde bulunan.

  • to_lsn
    Sonucu eklemek için lsn aralığı yüksek bitiş noktası temsil eden lsn değeri ayarlayın. to_lsnis binary(10).

    İçinde yalnızca satırları cdc. [capture_instance] _ct değer içeren tabloyu değiştirmek __$ start_lsn eşit veya from_lsnveya eşit to_lsn sonuç kümesinde bulunan.

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

    Aşağıdakilerden biri olabilir:

    • tüm
      Belirtilen lsn aralık içinde tüm değişiklikleri döndürür. Güncelleştirme işlemi nedeniyle daha fazla değişiklikler için 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 lsn aralık içinde tüm değişiklikleri döndürür. Güncelleştirme işlemi nedeniyle daha fazla değişiklikler için 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 lsn değişikliği tamamlama sırasını koruyan değişikliği ile ilişkili. Aynı hareket kaydedilmiş değişiklikleri aynı kayıt lsn değeri paylaşın.

__$ seqval

binary(10)

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

__$ işlem

int

Hedef veri kaynağına değişiklik veri satırı uygulamak için gerekli veri düzenleme dili (dml) işlemi tanımlar. Aşağıdakilerden biri olabilir:

1 = silme

2 = Ekle

3 = güncelleştirme (yakalanan sütun değerlerini güncelleştirme işlemi önce vardır). Bu değer yalnızca zaman satır filtre seçeneği 'tüm eski güncelleştirme' geçerlidir belirtildi.

4 = Güncelleştirme (yakalanan sütun değerleri olan bu güncelleştirme işlemi sonra)

__$ update_mask

varbinary(128)

Yakalama örneği için tanımlanan her yakalanan sütun karşılık gelen bir bit bit maskesi. Bu değer 1 ne zaman ayarlamak tüm tanımlanmış bitler var __$ işlem = 1 ya da 2. Ne zaman __$ işlem = 3 ya da 4, bu bit yalnızca değiştirilen sütunları karşılık 1 olarak ayarlanır.

<Yakalanan kaynak tablo sütunları>

değişir

Yakalama örneği oluşturulduğunda tanımlanan yakalanan sütun işlevi tarafından döndürülen kalan sütunlar vardır. Hiçbir sütun yakalanan sütun listesinde belirtilmiş olması durumunda, kaynak tablodaki tüm sütunlar döndürür.

İzinler

Üyelik sysadmin sabit sunucu rolü veya db_owner veritabanı rolü. Diğer tüm kullanıcılar için tüm yakalanan sütun kaynak tablo üzerinde select izni gerektirir ve yakalama örneği için gating rol tanımlanmışsa, bu üyelik veritabanı rolü. Arayan kaynak verileri görüntüleme iznine sahip değil, işlevin hata 229 döndürür ("select izni 'fn_cdc_get_all_changes_...', nesne veritabanı engellendi '<DatabaseName>', şema 'cdc'.").

Açıklamalar

Belirtilen lsn aralık içinde değişiklik yakalama örneği için zaman çizelgesinde izleme düşen değil işlev hata 208 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 ntexther zaman bir null atanır zaman değeri __$ işlem = 1 veya __$ işlem = 3. Sütun veri türü varbinary(max), varchar(max), ya nvarchar(max)null atanır zaman değeri __$ işlem sütun güncelleştirme sırasında değiştirmediyse = 3. Ne zaman __$ işlem = 1, bu sütunları silme zaman onların değeri atanır. Bir yakalama örneği her zaman bulunan hesaplanmış sütunlar null değerine sahiptir.

Örnekler

Birkaç SQL Server Management StudioŞablonlar kullanılabilir değişiklik veri yakalama sorgu işlevleri nasıl gösterin. Bu şablonlar kullanılabilir View menüde Management Studio. Daha fazla bilgi için, bkz. Şablon Gezgini.

Bu örnek Enumerate All Changes for Valid Range Template. İşlevini kullanan cdc.fn_cdc_get_all_changes_HR_Departmentyakalama örneği için kullanılabilir durumdaki tüm değişiklikleri bildirmek için HR_Department, kaynak tablo tanımlandığı HumanResources.Departmentde AdventureWorks2012 veritabanı.

-- ==================================================
-- Enumerate All Changes for Valid Range Template
-- ==================================================
USE AdventureWorks2012;
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

-- ==================================================
-- Enumerate All Changes for Valid Range Template
-- ==================================================
USE AdventureWorks2012;
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

Ayrıca bkz.

Başvuru

değiştirir<capture_instance> (Transact-sql)

sys.fn_cdc_map_time_to_lsn (Transact-sql)

sys.sp_cdc_get_ddl_history (Transact-sql)

sys.sp_cdc_get_captured_columns (Transact-sql)

sys.sp_cdc_help_change_data_capture (Transact-sql)

Kavramlar

Değişiklik veri yakalama hakkında