Procédure : définir et modifier un filtre de lignes paramétrable pour un article de fusion (SQL Server Management Studio)
Définissez, modifiez et supprimez des filtres de lignes paramétrés sur la page Filtrer les lignes de la table de l'Assistant Nouvelle publication ou sur la page Filtrer les lignes de la boîte de dialogue Propriétés de la publication - <publication>. Pour plus d'informations sur l'utilisation de cet Assistant et sur l'accès à cette boîte de dialogue, consultez Procédure : créer une publication et définir des articles (SQL Server Management Studio) et Procédure : Affichage et modification des propriétés de l'article et de la publication (SQL Server Management Studio).
[!REMARQUE]
Si vous ajoutez, modifiez ou supprimez un filtre de lignes paramétrable dans la page Propriétés de la publication - <publication> après que les abonnements à la publication aient été initialisés, vous devez générer une nouvelle capture instantanée et réinitialiser tous les abonnements après avoir effectué la modification. Pour plus d'informations sur les conditions requises pour les modifications des propriétés, consultez Modification des propriétés des publications et des articles.
Pour définir un filtre de lignes paramétrable
Sur la page Filtrer les lignes de la table de l'Assistant Nouvelle publication ou sur la page Filtrer les lignes de la boîte de dialogue Propriétés de la publication - <publication>, cliquez sur Ajouter, puis cliquez sur Ajouter un filtre.
Dans la boîte de dialogue Ajouter un filtre, sélectionnez une table à filtrer dans la zone de liste déroulante.
Créez une instruction de filtrage dans la zone de texte Instruction de filtrage. Vous pouvez taper directement dans la zone de texte, mais vous pouvez aussi faire glisser et déposer des colonnes depuis la zone de liste Colonnes.
La zone de texte Instruction de filtrage comprend un texte par défaut, qui est de la forme suivante :
SELECT <published_columns> FROM [tableowner].[tablename] WHERE
Le texte par défaut ne peut pas être modifié ; tapez la clause du filtre après le mot clé WHERE en utilisant la syntaxe SQL standard. Un filtrage paramétrable comprend un appel à la fonction système HOST_NAME() et/ou SUSER_SNAME(), ou bien une fonction définie par l'utilisateur qui référence une de ces fonctions ou les deux. Voici un exemple de clause de filtrage complète pour un filtre de lignes paramétrable :
SELECT <published_columns> FROM [HumanResources].[Employee] WHERE LoginID = SUSER_SNAME()
La clause WHERE doit utiliser un nommage en deux parties ; les nommages en trois et en quatre parties ne sont pas pris en charge.
Important
Pour des raisons de performances, il est recommandé de ne pas appliquer de fonctions aux noms de colonne dans les clauses de filtre de lignes paramétrable telles que LEFT([MyColumn]) = SUSER_SNAME(). Si vous utilisez HOST_NAME dans une clause de filtre et que vous remplacez la valeur de HOST_NAME, il peut être nécessaire de convertir les types des données à l'aide de CONVERT. Pour plus d'informations sur les pratiques recommandées pour cette situation, consultez la section « Substitution de la valeur de HOST_NAME() » dans la rubrique Filtres de lignes paramétrés.
Sélectionnez l'option qui correspond aux données qui seront partagées entre des Abonnés :
Une ligne de cette table ira à plusieurs abonnements
Filtre paramétré créant des partitions qui ne se chevauchent pas, avec un seul abonnement par partition
Si vous sélectionnez Filtre paramétré créant des partitions qui ne se chevauchent pas, avec un seul abonnement par partition, la réplication de fusion peut optimiser les performances en stockant et en traitant moins de métadonnées. Cependant, vous devez vérifier que les données sont partitionnées de telle façon qu'une ligne ne peut pas être répliquée sur plus d'un Abonné. Pour plus d'informations, consultez la section « Définition de « partition options » » dans la rubrique Filtres de lignes paramétrés.
Cliquez sur OK.
Si vous êtes dans la boîte de dialogue Propriétés de la publication - <publication>, cliquez sur OK pour enregistrer et fermer la boîte de dialogue.
Pour modifier un filtre de lignes paramétrable
Sur la page Filtrer les lignes de la table de l'Assistant Nouvelle publication ou sur la page Filtrer les lignes de la boîte de dialogue Propriétés de la publication - <publication>, sélectionnez un filtre dans le volet Tables filtrées, puis cliquez sur Modifier.
Dans la boîte de dialogue Modifier le filtre, modifiez le filtre.
Cliquez sur OK.
Pour supprimer un filtre de lignes paramétrable
- Sur la page Filtrer les lignes de la table de l'Assistant Nouvelle publication ou sur la page Filtrer les lignes de la boîte de dialogue Propriétés de la publication - <publication>, sélectionnez un filtre dans le volet Tables filtrées, puis cliquez sur Supprimer.