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 Veröffentlichung bzw. die Seite Zeilen filtern des Dialogfelds Veröffentlichungseigenschaften – <Veröffentlichung> zur Verfügung. Weitere Informationen zum Verwenden des Assistenten sowie zum Zugriff auf das Dialogfeld finden Sie unter Vorgehensweise: Erstellen einer Veröffentlichung und Definieren von Artikeln (SQL Server Management Studio) und Vorgehensweise: Anzeigen und Ändern der Eigenschaften von Veröffentlichungen und Artikeln (SQL Server Management Studio).
Hinweis |
---|
Wenn Sie im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> einen parametrisierten Filter hinzufügen, ändern oder löschen, nachdem Abonnements für die Veröffentlichung 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 Veröffentlichungs- und Artikeleigenschaften. |
So definieren Sie einen parametrisierten Zeilenfilter
Klicken Sie auf der Seite Tabellenzeilen filtern des Assistenten für neue Veröffentlichung oder auf der Seite Zeilen filtern des Dialogfelds Veröffentlichungseigenschaften – <Veröffentlichung> auf Hinzufügen und anschließend auf Filter hinzufügen.
Wählen Sie in der Dropdownliste im Dialogfeld Filter hinzufügen die zu filternde Tabelle aus.
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.
Wichtig 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()-Werts beschäftigt.
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.
Klicken Sie auf OK.
Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> befinden, klicken Sie auf OK, um Ihre Angaben zu speichern und das Dialogfeld zu schließen.
So ändern Sie einen parametrisierten Zeilenfilter
Wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Tabellenzeilen filtern oder im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung< auf der Seite Zeilen filtern im Bereich Gefilterte Tabellen einen Filter aus, und klicken Sie dann auf Bearbeiten.
Ändern Sie den Filter im Dialogfeld Filter bearbeiten.
Klicken Sie auf OK.
So löschen Sie einen parametrisierten Zeilenfilter
- Wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Tabellenzeilen filtern oder im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung< auf der Seite Zeilen filtern im Bereich Gefilterte Tabellen einen Filter aus, und klicken Sie dann auf Löschen.