Share via


Hinzufügen oder Bearbeiten von Filtern

Mithilfe der Dialogfelder Filter hinzufügen und Filter bearbeiten können Sie statische Zeilenfilter und parametrisierte Zeilenfilter hinzufügen und bearbeiten.

HinweisHinweis

Für das Bearbeiten in einer vorhandenen Veröffentlichung ist ein neuer Snapshot für die Veröffentlichung erforderlich. Wenn eine Veröffentlichung Abonnements besitzt, müssen die Abonnements erneut initialisiert werden. Weitere Informationen zum Ändern von Eigenschaften finden Sie unter Ändern von Veröffentlichungs- und Artikeleigenschaften.

Alle Veröffentlichungstypen können statische Filter einschließen. Mergeveröffentlichungen können auch parametrisierte Filter einschließen. Ein statischer Filter wird beim Erstellen der Veröffentlichung ausgewertet: alle Abonnenten der Veröffentlichung empfangen dieselben Daten. Ein parametrisierter Filter wird während der Replikationssynchronisierung ausgewertet: basierend auf dem Anmeldenamen oder dem Computernamen der einzelnen Abonnenten können unterschiedliche Abonnenten verschiedene Datenpartitionen empfangen. Klicken Sie im Dialogfeld auf den Link Beispielanweisungen, um Beispiele für die einzelnen Filtertypen anzuzeigen. Weitere Informationen zu den Filteroptionen finden Sie unter Filtern von veröffentlichten Daten.

Mithilfe von Zeilenfiltern können Sie eine zu veröffentlichende Teilmenge von Zeilen aus einer Tabelle angeben. Mithilfe von Zeilenfiltern können Sie Zeilen entfernen, die Benutzern nicht angezeigt werden sollen (z. B. Zeilen mit vertraulichen oder streng vertraulichen Informationen). Mit Zeilenfiltern können Sie auch unterschiedliche Datenpartitionen erstellen, die an verschiedene Abonnenten übermittelt werden. Indem Sie unterschiedliche Datenpartitionen für verschiedene Abonnenten veröffentlichen, können Sie auch Konflikte vermeiden, die andernfalls dadurch entstehen würden, dass mehrere Abonnenten dieselben Daten aktualisieren.

Optionen

Dieses Dialogfeld umfasst einen zweistufigen Vorgang für die Transaktions- und Snapshotveröffentlichungen sowie einen dreistufigen Vorgang für Mergeveröffentlichungen. Für alle Veröffentlichungstypen ist es erforderlich, dass Sie eine zu filternde Tabelle und eine oder mehrere Spalten auswählen, die im Filter eingeschlossen sein sollen. Der Filter wird als standardmäßige WHERE-Klausel definiert.

  1. Wählen Sie die zu filternde Tabelle aus

    Wenn Sie einen bereits vorhandenen Filter bearbeiten, kann die Tabellenauswahl nicht geändert werden. Wenn Sie einen neuen Filter hinzufügen, wählen Sie aus der Dropdown-Liste eine Tabelle aus. Tabellen werden in der Liste nur angezeigt, wenn sie auf der Seite Artikel ausgewählt wurden und nicht bereits einen Zeilenfilter besitzen. Wenn eine Tabelle bereits einen Zeilenfilter besitzt und Sie einen neuen definieren möchten:

    1. Klicken Sie im Dialogfeld Filter hinzufügen auf Abbrechen.

    2. Wählen Sie im Filterbereich der Seite Tabellenzeilen filtern die Tabelle aus, und klicken Sie auf Bearbeiten.

    3. Bearbeiten Sie einen vorhandenen Filter im Dialogfeld Filter bearbeiten.

  2. Vervollständigen Sie die Filteranweisung, um die von Abonnenten empfangenen Tabellenzeilen zu identifizieren

    Definieren Sie eine neue Filteranweisung, oder bearbeiten Sie eine vorhandene. Im Listenfeld Spalten werden alle Spalten aufgeführt, die Sie aus einer in Wählen Sie die zu filternde Tabelle aus ausgewählten Tabelle veröffentlichen. Der Textbereich Filteranweisung schließt den Standardtext der folgenden Form ein:

    SELECT <published_columns> FROM [schema].[tablename] WHERE

    Der Text kann nicht geändert werden. Geben Sie die Filterklausel nach dem WHERE-Schlüsselwort mithilfe der standardmäßigen Transact-SQL-Syntax ein. Wenn es sich beim Verleger um einen Oracle-Verleger handelt, muss die WHERE-Klausel mit der Abfragesyntax von Oracle kompatibel sein. Verwenden Sie nach Möglichkeit komplexe Filter. Sowohl statische als auch parametrisierte Filter erhöhen die Verarbeitungszeit für Veröffentlichungen. Deshalb sollten Sie Filteranweisungen so einfach wie möglich halten.

    Wichtiger HinweisWichtig

    Aus Leistungsgründen wird empfohlen, dass auf Spaltennamen in parametrisierten Zeilenfilterklauseln für Mergeveröffentlichungen keine Funktionen (z. B. LEFT([MyColumn]) = SUSER_SNAME()) angewendet werden. Wenn Sie HOST_NAME in einer Filterklausel verwenden und den Wert HOST_NAME überschreiben, kann es erforderlich sein, Datentypen mithilfe von CONVERT zu konvertieren. Weitere Informationen zu bewährten Methoden für diesen Fall finden Sie im Abschnitt über das Überschreiben des HOST_NAME()-Werts im Thema Parametrisierte Zeilenfilter.

  3. Geben Sie an, wie viele Abonnements Daten aus dieser Tabelle empfangen.

    Microsoft SQL Server 2005 und höher; nur für Mergereplikationen. Mithilfe von Mergereplikationen können Sie den für Ihre Daten und Ihre Anwendung am besten geeigneten Partitionstyp angeben. Wenn Sie Eine Zeile aus dieser Tabelle wird nur an ein Abonnement gesendet auswählen, legt die Mergereplikation die Option für nicht überlappende Partitionen fest. Nicht überlappende Partitionen arbeiten zur Leistungsverbesserung mit vorausberechneten Partitionen zusammen, wobei nicht überlappende Partitionen die bei vorausberechneten Partitionen entstehenden Uploadkosten minimieren. Die Leistungsvorteile nicht überlappender Partitionen treten deutlicher hervor, wenn die verwendeten parametrisierten Filter und Verknüpfungsfilter komplexer sind. Bei Auswahl dieser Option müssen Sie jedoch sicherstellen, dass die Daten so partitioniert werden, dass eine Zeile nicht für mehrere Abonnenten repliziert werden kann. Weitere Informationen finden Sie im Abschnitt zum Festlegen von Partitionsoptionen im Thema Parametrisierte Zeilenfilter.

Nachdem Sie einen Filter hinzugefügt oder bearbeitet haben, klicken Sie auf OK, um die Änderungen zu speichern und das Dialogfeld zu schließen. Der von Ihnen angegebene Filter wird analysiert und für die Tabelle in der SELECT-Klausel ausgeführt. Wenn die Filteranweisung Syntaxfehler oder andere Probleme enthält, werden Sie benachrichtigt und können die Filteranweisung bearbeiten.