Freigeben über


Vorgehensweise: Definieren und Ändern eines parametrisierten Zeilenfilters für einen Mergeartikel (SQL Server Management Studio)

Zum Definieren, Ändern oder Löschen parametrisierter Zeilenfilter steht Ihnen die Seite Tabellenzeilen filtern des Assistenten für neue Publikation bzw. die Seite Zeilen filtern des Dialogfeldes Publikationseigenschaften – <Publication> zur Verfügung. Weitere Informationen zum Verwenden des Assistenten sowie zum Zugriff auf das Dialogfeld finden Sie unter Vorgehensweise: Erstellen einer Publikation und Definieren von Artikeln (SQL Server Management Studio) und Vorgehensweise: Anzeigen und Ändern der Eigenschaften von Publikationen und Artikeln (SQL Server Management Studio).

ms152518.note(de-de,SQL.90).gifHinweis:
Wenn Sie im Dialogfeld Publikationseigenschaften – <Publication> einen parametrisierten Filter hinzufügen, ändern oder löschen, nachdem Abonnements für die Publikation initialisiert wurden, müssen Sie einen neuen Snapshot generieren und alle Abonnements nach vorgenommener Änderung erneut initialisieren. Weitere Informationen zu den Anforderungen für Eigenschaftenänderungen finden Sie unter Ändern von Publikations- und Artikeleigenschaften.

So definieren Sie einen parametrisierten Zeilenfilter

  1. Klicken Sie auf der Seite Tabellenzeilen filtern des Assistenten für neue Publikation oder auf der Seite Zeilen filtern des Dialogfeldes Publikationseigenschaften – <Publication> auf Hinzufügen und anschließend auf Filter hinzufügen.

  2. Wählen Sie in der Dropdownliste im Dialogfeld Filter hinzufügen die zu filternde Tabelle aus.

  3. Erstellen Sie im Textfeld Filteranweisung eine Filteranweisung. Sie können den Text direkt in den Textbereich eingeben, und Sie können Spalten auch mit Drag und Drop aus dem Listenfeld Spalten einfügen.

    • Der Textbereich Filteranweisung enthält den Standardtext in folgender Form:

      SELECT <published_columns> FROM [tableowner].[tablename] WHERE
      
    • Der Standardtext kann nicht geändert werden. Geben Sie mithilfe der SQL-Standardsyntax im Anschluss an das WHERE-Schlüsselwort die Filterklausel ein. Parametrisierte Filter enthalten einen Aufruf der HOST_NAME()- und/oder SUSER_SNAME()-Systemfunktion bzw. einer benutzerdefinierten Funktion, die auf eine oder beide dieser Funktionen verweist. Eine vollständige Filterklausel für einen parametrisierten Zeilenfilter kann z. B. wie folgt aussehen:

      SELECT <published_columns> FROM [HumanResources].[Employee] WHERE LoginID = SUSER_SNAME()
      

      Die WHERE-Klausel muss zweiteilige Benennungen verwenden. Drei- und vierteilige Benennungen werden nicht unterstützt.

      ms152518.note(de-de,SQL.90).gifWichtig:
      Um die Leistung zu verbessern, sollten Funktionen nicht auf Spaltennamen in Klauseln für parametrisierte Zeilenfilter (wie LEFT([MyColumn]) = SUSER_SNAME()) angewendet werden. Wenn Sie in einer Filterklausel HOST_NAME verwenden und den HOST_NAME-Wert außer Kraft setzen, ist es möglicherweise notwendig, die Datentypen mithilfe von CONVERT zu konvertieren. Weitere Informationen zu den bewährten Methoden für diesen Fall finden Sie im Thema Parametrisierte Zeilenfilter in dem Abschnitt, der sich mit dem Außerkraftsetzen des HOST_NAME()-Wertes beschäftigt.
  4. Wählen Sie die Option aus, mit der angegeben wird, wie Daten für mehrere Abonnenten freigegeben werden:

    • Eine Zeile aus dieser Tabelle wird an mehrere Abonnements gesendet
    • Eine Zeile aus dieser Tabelle wird nur an ein Abonnement gesendet

    Wenn Sie Eine Zeile aus dieser Tabelle wird nur an ein Abonnement gesendet auswählen, kann die Mergereplikation die Leistung optimieren, da weniger Metadaten gespeichert und verarbeitet werden. Sie müssen 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 unter Parametrisierte Zeilenfilter.

  5. Klicken Sie auf OK.

  6. Wenn Sie sich im Dialogfeld Eigenschaften von Publikation – <Publication> befinden, klicken Sie auf OK, um Ihre Angaben zu speichern und das Dialogfeld zu schließen.

So ändern Sie einen parametrisierten Zeilenfilter

  1. Wählen Sie im Assistenten für neue Publikation auf der Seite Tabellenzeilen filtern oder im Dialogfeld Publikationseigenschaften – <Publication< auf der Seite Zeilen filtern im Bereich Gefilterte Tabellen einen Filter aus, und klicken Sie dann auf Bearbeiten.

  2. Ändern Sie den Filter im Dialogfeld Filter bearbeiten.

  3. Klicken Sie auf OK.

So löschen Sie einen parametrisierten Zeilenfilter

  1. Wählen Sie im Assistenten für neue Publikation auf der Seite Tabellenzeilen filtern oder im Dialogfeld Publikationseigenschaften – <Publication< auf der Seite Zeilen filtern im Bereich Gefilterte Tabellen einen Filter aus, und klicken Sie dann auf Löschen.

Siehe auch

Konzepte

Verknüpfungsfilter
Parametrisierte Zeilenfilter

Andere Ressourcen

How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming)

Hilfe und Informationen

Informationsquellen für SQL Server 2005