Partager via


Générer des filtres

La boîte de dialogue Générer des filtres permet de définir un filtre de lignes à appliquer sur une table lors d'une opération de publication de fusion. La réplication étend ensuite automatiquement le filtre aux autres tables associées par le biais de relations de clé étrangère. Par exemple, si vous définissez un filtre portant sur une table contenant des données de clients pour ne garder que les données portant sur les clients français, la réplication étend donc ce filtre aux tables retraçant les informations propres aux commandes et à leurs détails en relation avec des clients français.

Options

Cette boîte de dialogue permet d'initier un processus en trois étapes afin de créer un filtre de lignes portant sur une table. Le filtre ainsi créé est ensuite étendu aux tables possédant une relation à la table filtrée à travers leur clé primaire et leurs relations de clé étrangère. Prenons pour exemple trois tables nommées Customer, SalesOrderHeader et SalesOrderDetail. Les tables Customer et SalesOrderHeader possèdent une relation entre elles et une autre existe entre SalesOrderHeader et SalesOrderDetail. Si nous appliquons un filtre de lignes à Customer, la réplication étend ainsi ce filtre à SalesOrderHeader et à SalesOrderDetail.

  1. Sélectionnez la table à filtrer.

    Sélectionnez une table dans la zone de liste déroulante. Les tables n'y apparaissent que si elles ont été sélectionnées dans la page Articles.

  2. Complétez l'instruction de filtrage pour identifier les lignes de table que les abonnés doivent recevoir.

    Définissez une nouvelle instruction de filtrage. La zone de liste déroulante Colonnes répertorie toutes les colonnes que vous publiez à partir de la table à choisir dans Sélectionnez la table à filtrer. La zone de texte Instruction de filtrage contient le texte par défaut se présentant sous la forme :

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

    Ce texte ne peut pas être modifié. Saisissez dans ce cas la clause de filtrage après le mot clé WHERE en suivant la syntaxe standard Transact-SQL.

    Important

    Pour optimiser les performances, nous vous recommandons de ne pas appliquer de fonctions aux noms de colonnes dans des clauses de filtre de lignes paramétrés, comme LEFT([MyColumn]) = SUSER_SNAME(). Si vous utilisez HOST_NAME dans une clause de filtrage puis en remplacez la valeur, il peut s'avérer judicieux de convertir les types de données avec la fonction CONVERT. Pour plus d'informations sur les recommandations applicables à ce cas de figure, consultez la section « Substitution de la valeur de HOST_NAME() » dans la rubrique Filtres de lignes paramétrés.

  3. Spécifiez combien d'abonnements recevront des données de cette table.

    MicrosoftSQL Server 2005 et versions ultérieures uniquement. La réplication de fusion vous permet d'indiquer le type de partitions répondant au mieux à vos données et votre application. Si vous sélectionnez Une ligne de cette table ira à un seul abonnement, la réplication de fusion définit l'option de non-chevauchement des partitions. Cette option, qui fonctionne avec les partitions précalculées pour améliorer les performances, permet de réduire au minimum le coût de téléchargement associé aux partitions précalculées. Le gain de performances lié au non-chevauchement des partitions est plus flagrant lorsque les filtres paramétrés et les filtres de jointure utilisés sont plus complexes. Si vous sélectionnez cette option, vous devez veiller à ce que les données soient partitionnées de telle sorte qu'une ligne ne puisse pas être répliquée vers plusieurs abonnés. Pour plus d'informations, consultez la section « Définition de « partition options » » dans la rubrique Filtres de lignes paramétrés.

Après avoir ajouté un filtre, cliquez sur OK pour quitter ainsi la boîte de dialogue. Le filtre que vous spécifiez est ensuite analysé et exécuté sur la table indiquée dans la clause SELECT. Si l'instruction de filtrage contenait des erreurs de syntaxe ou rencontrait tout autre problème, vous en serez alors informé pour vous donner la possibilité de modifier l'instruction de filtrage.

Après l'analyse de l'instruction, la réplication procède à la création des filtres de jointure nécessaires. Si vous n'avez pas encore configuré le serveur de distribution pour le serveur de publication pour lequel cet Assistant est censé s'exécuter, un message vous invite alors à le configurer.