Aracılığıyla paylaş


Nasıl Yapılır: Birleştirme tablo makaleleri (çoğaltma Transact-SQL programlama) arasındaki mantıksal kayıt ilişki tanımlama

Not

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Birleştirme çoğaltma farklı tablolardaki ilişkili satırları arasında bir ilişki tanımlamanızı sağlar.Bu satır eşitlemede hareketsel bir birim olarak işlenebilecek anlamına gelir.mantıksal kayıt olup olmadığını, birleştirmek filtresi ilişkisi olan iki makaleleri arasında tanımlanabilir.Daha fazla bilgi için bkz: Değişiklikleri mantıksal kayıtlarıyla ilgili satırları gruplandırma. Çoğaltma, depolanan yordamları kullanarak makalelere arasındaki mantıksal kayıt ilişkileri programsal olarak belirtebilirsiniz.

Bir ilişkili birleştirmek filtresi olmadan bir mantıksal kayıt ilişki tanımlamak için

  1. yayın, filtre uygulanan tüm makaleleri içeriyorsa, yürütmek sp_helpmergepublicationve Not değeriuse_partition_groups sonuç küme.

    • Değer 1, daha sonra bölüm zaten kullanılmakta olan precomputed.

    • Değer 0 sonra yürütmeksp_changemergepublication yayımcı en yayın veritabanı.Bir değer belirtin. use_partition_groups for @ özellik ve değeri TRUE for değer.

      Not

      yayın precomputed bölümleri desteklemiyorsa, mantıksal kayıtlar kullanılamaz.Daha fazla bilgi için bkz: konu içinde gereksinimleri Precomputed bölümlerini kullanmak için Parametreli süzgeç performans Precomputed bölümleri ile en iyi duruma getirme.

    • Değer null (BOş) olduğunda, anlık görüntü Aracısı, yayın ilk anlık görüntü görüntü görüntüsünü oluşturmak için çalıştırılması gerekiyor.

  2. Oluşturan makaleleri mantıksal kayıt mevcut execute, yapın. sp_addmergearticle yayımcı yayın veritabanında en.Aşağıdaki çakışma algılama ve Çözümlemesi mantıksal kayıt seçeneklerini belirtin:

    • algılamak ve mantığı kayıttaki ilişkili satırları içinde ortaya çıkan çakışmaları çözümlemek için değerini belirtin. TRUE for @ logical_record_level_conflict_detection and @ logical_record_level_conflict_resolution.

    • Standart satır veya sütun düzeyinde çakışma algılama ve Çözümlemesi'ni kullanmak için , değerini belirtin. yanlış for @ logical_record_level_conflict_detection and @ logical_record_level_conflict_resolutionVarsayılan değer .

  3. Yineleme 2. adım oluşturan her makale mantıksal kayıt.Her makale aynı çakışma algılama ve Çözümlemesi seçeneğini kullanın mantıksal kayıt.Daha fazla bilgi için bkz: Algılama ve mantıksal kayıtları, çakışmaları çözme.

  4. yayın Veritabanı yayımcısına sırasında yürütmek sp_addmergefilter.Belirtin @ yayın bir makalede ilişki adı**@ makale** makale ikincisinde adı**@ join_articlename** için ilişki için bir ad**@ filtername** için iki makaleleri arasındaki ilişkiyi tanımlayan bir yan tümce**@ join_filterclause** için birleştirmek türü**@ join_unique_key** ve için aşağıdaki değerlerden biri**@ filter_type**:

    • 2 - Mantıksal bir ilişki tanımlar.

    • 3 - Mantıksal bir ilişki için birleştirmek süzgeçle tanımlar.

    Not

    Bir birleştirmek filtresi kullanılmazsa, iki makaleleri arasındaki ilişkinin yönünü önemli değildir.

  5. Yayındaki kalan her mantıksal kayıt ilişki için adım 2'yi yineleyin.

çakışma algılama ve çözümlemesi için mantıksal kayıtlar değiştirmek için

  1. algılamak ve içinde mantıksal kayıttaki ilişkili satırları ortaya çıkan çakışmaları çözümlemek için:

    • yayın veritabanı Yayımcı tarafında yürütmek sp_changemergearticle.Bir değer belirtin. logical_record_level_conflict_detection for @ özellik ve değeri TRUE for değer.Bir değer belirtin. 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

    • yayın veritabanı Yayımcı tarafında yürütmek sp_changemergearticle.Bir değer belirtin. logical_record_level_conflict_resolution for @ özellik ve değeri TRUE for değer.Bir değer belirtin. 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

  2. Standart satır düzey veya sütun düzeyinde çakışma algılama ve Çözümlemesi'ni kullanmak için :

    • yayın veritabanı Yayımcı tarafında yürütmek sp_changemergearticle.Bir değer belirtin. logical_record_level_conflict_detection for @ özellik ve değeri yanlış for değer.Bir değer belirtin. 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

    • yayın veritabanı Yayımcı tarafında yürütmek sp_changemergearticle.Bir değer belirtin. logical_record_level_conflict_resolution for @ özellik ve değeri yanlış for değer.Bir değer belirtin. 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

Bir mantıksal kayıt ilişki kaldırmak için

  1. yayın veritabanı Yayımcı tarafında, belirtilen bir yayın için tanımlanmış olan tüm mantıksal kayıt ilişkileri hakkında bilgi için aşağıdaki sorguyu yürütün:

    Kaldırılmakta olan mantıksal kayıt ilişkinin adını not filtername Sonuç kümesinde sütun.

    Not

    Bu sorgu aynı bilgileri verir... sp_helpmergefilter; olan mantıksal kayıt ilişkilerini döndürür bilgilerini de birleştirmek yalnızca süzgeçleri ancak, bu sistem saklı yordamı.

  2. yayın veritabanı Yayımcı tarafında yürütmek sp_dropmergefilter.Belirtin @ yayın ilişkideki makaleleri birinin adı**@ makaleve adım 1: için ilişkiden adı@ filtername**.

Example

Bu örnek, varolan precomputed bölümleri etkinleştirir yayın, SalesOrderHeader ve SalesOrderDetail tablolar için iki yeni makaleleri içeren mantıksal kayıt oluşturur.