Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Remote » SQL Remote-Replikationsplanung » SQL Remote-Replikation planen und einrichten » Publikationen und Artikel

 

Nur einige Zeilen einer Tabelle publizieren

Um eine Publikation zu erstellen, die nur einige Zeilen einer Tabelle enthält, müssen Sie eine Suchbedingung schreiben, die nur auf die Zeilen zutrifft, die Sie publizieren wollen. Verwenden Sie eine der folgenden Klauseln in Ihrer Suchbedingung:

  • SUBSCRIBE BY-Klausel   Verwenden Sie die SUBSCRIBE BY-Klausel, wenn mehrere Subskribenten unterschiedliche Zeilen aus einer Tabelle erhalten.

    Die SUBSCRIBE BY-Klausel wird empfohlen, wenn Ihr SQL Remote-System eine große Anzahl von Subskriptionen erfordert. Im Gegensatz zur WHERE-Klausel erlaubt die SUBSCRIBE BY-Klausel viele Subskriptionen, die einer einzigen Publikation zugeordnet sind. Subskribenten erhalten Zeilen abhängig vom Wert eines angeführten Ausdrucks.

    Publikationen, die eine SUBSCRIBE BY-Klausel verwenden, sind kompakter, leichter verständlich und bieten eine bessere Performance als solche, die mehrere WHERE-Klauseln verwenden.

    Weitere Hinweise finden Sie unter Nur einige Zeilen mit der SUBSCRIBE BY-Klausel publizieren.

  • WHERE-Klausel   Verwenden Sie eine WHERE-Klausel, um eine Teilmenge von Zeilen in einen Artikel einzubeziehen. Alle Subskribenten für die Publikation, die diesen Artikel enthält, erhalten die Zeilen, die der WHERE-Klausel entsprechen.

    Alle nicht publizierten Zeilen müssen einen Standardwert haben. Ansonsten tritt ein Fehler auf, wenn die entfernte Datenbank versucht, neue Zeilen aus der konsolidierten Datenbank einzufügen.

    Sie können eine WHERE-Klausel in einem Artikel verwenden.

    Der Datenbankserver muss, direkt proportional zu der Anzahl der Publikationen, dem Transaktionslog Informationen hinzufügen und das Transaktionslog durchsuchen, um Nachrichten zu versenden. Im Gegensatz zur SUBSCRIBE BY-Klausel, erlaubt es die WHERE-Klausel nicht, dass viele Subskriptionen einer einzigen Publikation zugeordnet werden.

    Weitere Hinweise finden Sie unter Nur einige Zeilen mit einer WHERE-Klausel publizieren.

Beispiel

Sie benötigen eine Publikation, die es jedem Handelsvertreter ermöglicht, Folgendes durchzuführen:

  • Seine Bestellungen zu subskribieren.

  • Seine Bestellungen lokal zu aktualisieren.

  • Seine Bestellungen an die konsolidierte Datenbank zu replizieren.

Wenn Sie die WHERE-Klausel verwenden, müssten Sie eine separate Publikation für jeden Handelsvertreter erstellen. Die folgende Publikation gilt für einen Handelsvertreter namens Sam Singer, und jeder andere Handelsvertreter würde eine ähnliche Publikation benötigen.

CREATE PUBLICATION PubOrdersSamSinger (
   TABLE SalesOrders
      WHERE Active = 1
);

Die folgende Anweisung subskribiert Sam Singer für die Publikation "PubsOrdersSamSinger".

CREATE SUBSCRIPTION
TO PubOrdersSamSinger
FOR Sam_Singer;

Wenn Sie die SUBSCRIBE BY-Klausel verwenden, benötigen Sie nur eine Publikation. Alle Handelsvertreter können die folgende Publikation verwenden:

CREATE PUBLICATION PubOrders (
   TABLE SalesOrders 
   SUBSCRIBE BY SalesRepresentativeID
);

Die folgende Anweisung subskribiert Sam Singer für die Publikation "PubsOrders" anhand seiner ID, 8887.

CREATE SUBSCRIPTION
TO PubOrders ('8887')
FOR Sam_Singer;

Nur einige Zeilen mit der SUBSCRIBE BY-Klausel publizieren
Nur einige Zeilen mit einer WHERE-Klausel publizieren