Udostępnij za pośrednictwem


Jak Zdefiniować logicznych rekord relację między artykułów tabela korespondencji seryjnej (Programowanie replikacja języka Transact-SQL)

Uwaga

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.

replikacja łączenia można zdefiniować relację między powiązane wiersze w różnych tabelach.Oznacza to, że wiersze mogą być przetwarzane jako jednostkę transakcyjną podczas synchronizacji.rekord logiczny mogą być definiowane między dwoma artykuły niezależnie od tego, czy mają one łączyć filtrowanie relacji.Aby uzyskać więcej informacji zobacz Grupowanie zmiany pokrewne wiersze z rekordami logicznych. Można programowo określić rekord logiczny relacji między artykuły za pomocą procedur przechowywanych replikacja.

Aby zdefiniować rekord logiczny relacji bez filtr skojarzony łączyć

  1. Jeśli publikacja zawiera wszystkie artykuły, które są filtrowane, wykonać sp_helpmergepublication, a wartość notatkiuse_partition_groups zestaw wyników.

    • Jeśli wartość jest 1, następnie precomputed partycje są już używane.

    • Jeśli wartość jest 0, następnie wykonać sp_changemergepublication w programie Publisher na baza danych publikacja.Podaj wartość use_partition_groups for @ Właściwość i wartość wartość true for wartość @.

      Uwaga

      Jeśli publikacja nie obsługuje partycji precomputed, nie można użyć rekordów logiczne.Aby uzyskać więcej informacji zobacz wymagania dotyczące partycji przy użyciu Precomputed w temacie Optymalizacja sparametryzowana wydajności filtr z Precomputed partycji.

    • Jeśli wartość jest NULL, migawka Agent musi być uruchomione, aby wygenerować migawkę wstępnego dla publikacja.

  2. Jeśli artykułów, które obejmuje rekord logiczny nie istnieją, wykonać sp_addmergearticle w programie Publisher na baza danych publikacja.Określ jedną z następujących konflikt wykrywania i rozwiązywania opcji rekord logiczny:

    • Aby wykrywać i rozwiązywać konflikty, które występują w powiązane wiersze w rekordzie logiki, podaj wartość wartość true for @ logical_record_level_conflict_detection and @ logical_record_level_conflict_resolution.

    • Aby użyć standardowego wiersz lub kolumna poziom wykrywanie konfliktów i rozdzielczość, należy określić wartość FAŁSZ for @ logical_record_level_conflict_detection and @ logical_record_level_conflict_resolution, które jest ustawieniem domyślnym.

  3. Powtórz krok 2 dla każdego artykuł, który obejmuje rekord logiczny.Dla każdego artykuł rekord logiczny, należy użyć tego samego wykrywanie konfliktów i opcję rozdzielczości.Aby uzyskać więcej informacji zobacz Wykrywanie i rozwiązywanie konfliktów w rekordach logicznych.

  4. W programie publisher na baza danych publikacja, wykonać sp_addmergefilter.Określ @ publikacja, nazwę artykuł jeden w relacji @ artykuł, nazwę artykuł drugiego @ join_articlename, nazwę relacji dla @ filtername, klauzula, która określa relację między dwoma artykuły do @ join_filterclause, typu łączyć dla @ join_unique_key i jedną z następujących wartości @ filter_type:

    • 2 - Określa relacje logiczne.

    • 3 - Definiuje relację logicznych z łączyć filtru.

    Uwaga

    Jeśli łączyć filtr nie jest używany, kierunek relacji między dwoma artykuły nie ma znaczenia.

  5. Powtórz krok 2 dla każdej pozostałej relacji rekord logiczny w publikacja.

Aby zmienić wykrywanie konfliktów i rozpoznawanie rekordów logicznych

  1. Do wykrywać i rozwiązywania konfliktów, które występują w powiązane wiersze w rekord logiczny:

    • W programie Publisher na baza danych publikacja, wykonać sp_changemergearticle.Podaj wartość logical_record_level_conflict_detection for @ Właściwość i wartość wartość true for wartość @.Podaj wartość 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

    • W programie Publisher na baza danych publikacja, wykonać sp_changemergearticle.Podaj wartość logical_record_level_conflict_resolution for @ Właściwość i wartość wartość true for wartość @.Podaj wartość 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

  2. Aby użyć standardowych konflikt poziomie wiersza lub kolumna poziom wykrywania i rozwiązywania:

    • W programie Publisher na baza danych publikacja, wykonać sp_changemergearticle.Podaj wartość logical_record_level_conflict_detection for @ Właściwość i wartość FAŁSZ for wartość @.Podaj wartość 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

    • W programie Publisher na baza danych publikacja, wykonać sp_changemergearticle.Podaj wartość logical_record_level_conflict_resolution for @ Właściwość i wartość FAŁSZ for wartość @.Podaj wartość 1 for @ force_invalidate_snapshot and @ force_reinit_subscription.

Aby usunąć relacji rekord logiczny

  1. W programie Publisher na baza danych publikacja, wykonać następującej kwerendy do zwracania informacji na temat wszystkich rekord logiczny relacji zdefiniowanych dla określonej publikacja:

    Zanotuj nazwę rekord logiczny usuwana w relacji filtername kolumna zestaw wyników.

    Uwaga

    Ta kwerenda zwraca te same informacje, jak sp_helpmergefilter; jednak tej procedury zapisanej w systemie tylko zwraca informacje o relacji logicznych rekordów, które są również dołączyć filtrów.

  2. Wydawca publikacja bazy danych wykonać sp_dropmergefilter.Określ @ publikacja, nazwę jednego z artykułów w relacji @ artykułi nazwę relacji z kroku 1 do @ filtername.

Example

W tym przykładzie umożliwia precomputed partycji na istniejącej publikacja, a następnie tworzy rekord logiczny zawierający dwa nowe artykuły SalesOrderHeader i SalesOrderDetail tabel.