sp_changemergefilter (Transact-SQL)

S’applique à :SQL Server

Modifie certaines propriétés du filtre de fusion. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_changemergefilter
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @filtername = ] N'filtername'
    , [ @property = ] N'property'
    , [ @value = ] N'value'
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, sans valeur par défaut.

[ @article = ] N’article'

Nom de l’article. @article est sysname, sans valeur par défaut.

[ @filtername = ] N’filtername'

Nom actuel du filtre. @filtername est sysname, sans valeur par défaut.

[ @property = ] N’property'

Nom de la propriété à changer. @property est sysname, sans valeur par défaut.

[ @value = ] N’value'

Nouvelle valeur de la propriété spécifiée. @value est nvarchar(1000), sans valeur par défaut.

Le tableau suivant décrit les propriétés des articles et les valeurs de ces propriétés.

Propriété Valeur Description
filter_type 1 Filtre de jointure.

Cette option est nécessaire pour prendre en charge les abonnés SQL Server Compact.
2 Relation d'enregistrement logique.
3 Un filtre de jointure est également une relation d'enregistrement logique.
filtername Nom du filtre.
join_articlename Nom de l'article de jointure.
join_filterclause Clause Filtre.
join_unique_key true La jointure se fait sur une clé unique.
false La jointure n’est pas sur une clé unique.

[ @force_invalidate_snapshot = ] force_invalidate_instantané

Reconnaît que l’action effectuée par cette procédure stockée peut invalider une instantané existante. @force_invalidate_instantané est bit, avec la valeur par défaut 0.

  • 0spécifie que les modifications apportées à l’article de fusion n’entraînent pas l’instantané non valide. Si la procédure stockée détecte que la modification requiert un nouvel instantané, une erreur se produit et aucune modification n'est effectuée.

  • 1signifie que les modifications apportées à l’article de fusion peuvent entraîner l’instantané non valide et, si des abonnements existants nécessitent un nouveau instantané, donnent l’autorisation à l’instantané existante d’être marquée comme obsolète et qu’une nouvelle instantané générée.

[ @force_reinit_subscription = ] force_reinit_subscription

Confirme que l'action entreprise par cette procédure stockée peut nécessiter la réinitialisation des abonnements existants. @force_reinit_subscription est bit, avec la valeur par défaut 0.

  • 0 spécifie que les modifications apportées à l’article de fusion n’entraînent pas la réinitialisation de l’abonnement. Si la procédure stockée détecte que la modification nécessite la réinitialisation des abonnements existants, une erreur se produit et aucune modification n'est effectuée.

  • 1 signifie que les modifications apportées à l’article de fusion réinitialisent les abonnements existants et autorisent la réinitialisation de l’abonnement à se produire.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

sp_changemergefilter est utilisé dans la réplication de fusion.

La modification d'un filtre sur un article de fusion nécessite de recréer l'instantané, s'il existe. Cette opération est effectuée en définissant l'@force_invalidate_instantané sur 1. S’il existe des abonnements à cet article, les abonnements doivent être réinitialisés, ce qui est fait en définissant l '@force_reinit_subscription sur 1.

Pour utiliser des enregistrements logiques, la publication et les articles doivent répondre à plusieurs exigences. Pour plus d’informations, consultez Regrouper les modifications apportées à des lignes connexes à l’aide d’enregistrements logiques.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou db_owner rôle de base de données fixe peuvent s’exécuter sp_changemergefilter.