Hinzufügen oder Bearbeiten von Filtern

Gilt für:SQL ServerAzure SQL Managed Instance

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

Hinweis

Für das Bearbeiten in einer vorhandenen Veröffentlichung ist eine neue Momentaufnahme 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 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.

Tastatur

Dieses Dialogfeld umfasst einen zweistufigen Vorgang für die Transaktions- und Momentaufnahmeverö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 ausausgewählten Tabelle veröffentlichen. Der Textbereich Filteranweisung enthält den Standardtext im folgenden Format:

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

    Dieser Text kann nicht geändert werden; geben Sie die Filterklausel nach dem WHERE-Schlüsselwort mit 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.

    Wichtig

    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 HOST_NAME-Wert überschreiben, müssen Datentypen eventuell mit CONVERT konvertiert werden. Weitere Informationen zu bewährten Methoden für diesen Fall finden Sie im Abschnitt über das Überschreiben des HOST_NAME()-Werts im Thema Parameterized Row Filters.

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

    Nur Microsoft SQL Server 2005 (9.x) und höhere Versionen; Replikation nur zusammenführen. 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 gesendetauswä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 Joinfilter 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 unter Parameterized Row Filters.

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.

Weitere Informationen

Erstellen einer Veröffentlichung
Anzeigen und Ändern von Veröffentlichungseigenschaften
Filtern von veröffentlichten Daten
Verknüpfungsfilter
Parameterized Row Filters
Veröffentlichen von Daten und Datenbankobjekten