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.
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
Ayrıca bkz.