Filter generieren

Gilt für:SQL Server

Mithilfe des Dialogfelds Filter generieren können Sie einen Zeilenfilter für eine Tabelle in einer Mergeveröffentlichung definieren. Die Replikation erweitert dann den Filter automatisch auf andere Tabellen, die durch Fremdschlüsselbeziehungen verbunden sind. Wenn Sie z. B. einen Filter für eine Kundentabelle so definieren, dass diese nur Daten zu französischen Kunden enthält, dann erweitert die Replikation den Filter derart, dass verknüpfte Tabellen mit Bestellungen und Bestellungsdetails nur Informationen enthalten, die sich auf französische Kunden beziehen.

Tastatur

Dieses Dialogfeld enthält einen dreistufigen Vorgang zum Erstellen eines Zeilenfilters für eine Tabelle. Der Filter wird dann auf die Tabellen erweitert, die mit der gefilterten Tabelle über Primärschlüssel- und Fremdschlüsselbeziehungen verknüpft sind. Wenn z. B. drei Tabellen gegeben sind, Customer, SalesOrderHeaderund SalesOrderDetail, mit einer Beziehung zwischen Customer und SalesOrderHeadersowie einer Beziehung zwischen SalesOrderHeader und SalesOrderDetail, dann können Sie einen Zeilenfilter auf Customeranwenden, und die Replikation erweitert diesen Filter auf SalesOrderHeader und SalesOrderDetail.

  1. Wählen Sie die zu filternde Tabelle aus.

    Wählen Sie eine Tabelle aus dem Dropdownlistenfeld aus. Tabellen werden im Listenfeld nur dann angezeigt, wenn sie auf der Seite Artikel ausgewählt wurden.

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

    Definieren Sie eine neue Filteranweisung. 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 [tableowner].[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.

    Wichtig

    Aus Leistungsgründen ist es empfehlenswert, keine Funktionen auf Spaltennamen in Klauseln für parametrisierte Zeilenfilter anzuwenden, wie z. B. LEFT([MyColumn]) = SUSER_SNAME(). 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. 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 haben, klicken Sie auf OK , um 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.

Nachdem die Anweisung analysiert ist, erstellt die Replikation die erforderlichen Joinfilter. Wenn Sie bis jetzt für den Verleger, für den der Assistent ausgeführt wird, den Verteiler nicht konfiguriert haben, werden Sie jetzt aufgefordert, ihn zu konfigurieren.

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