Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

sp_addmergearticle (Transact-SQL)

Ajoute un article à une publication de fusion existante. Cette procédure stockée est exécutée au niveau du serveur de publication sur la base de données de publication.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

sp_addmergearticle [ @publication = ] 'publication'  
        , [ @article = ] 'article'  
        , [ @source_object = ] 'source_object' 
    [ , [ @type = ] 'type' ] 
    [ , [ @description = ] 'description' ] 
    [ , [ @column_tracking = ] 'column_tracking' ] 
    [ , [ @status = ] 'status' ] 
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ] 
    [ , [ @creation_script = ] 'creation_script' ] 
    [ , [ @schema_option = ] schema_option ] 
    [ , [ @subset_filterclause = ] 'subset_filterclause' ] 
    [ , [ @article_resolver = ] 'article_resolver' ] 
    [ , [ @resolver_info = ] 'resolver_info' ] 
    [ , [ @source_owner = ] 'source_owner' ] 
    [ , [ @destination_owner = ] 'destination_owner' ] 
    [ , [ @vertical_partition = ] 'vertical_partition' ] 
    [ , [ @auto_identity_range = ] 'auto_identity_range' ] 
    [ , [ @pub_identity_range = ] pub_identity_range ] 
    [ , [ @identity_range = ] identity_range ] 
    [ , [ @threshold = ] threshold ] 
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ] 
    [ , [ @destination_object = ] 'destination_object' ] 
    [ , [ @allow_interactive_resolver = ] 'allow_interactive_resolver' ] 
    [ , [ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' ] 
    [ , [ @check_permissions = ] check_permissions ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @published_in_tran_pub = ] 'published_in_tran_pub' ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' ]
    [ , [ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' ]
    [ , [ @partition_options = ] partition_options ]
    [ , [ @processing_order = ] processing_order ]
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]
    [ , [ @identityrangemanagementoption = ] 'identityrangemanagementoption' ]
    [ , [ @delete_tracking = ] delete_tracking ]
    [ , [ @compensate_for_errors = ] 'compensate_for_errors' ] 
    [ , [ @stream_blob_columns = ] 'stream_blob_columns' ]

[ @publication= ] 'publication'

Nom de la publication contenant l'article. publication est de type sysname et n'a pas de valeur par défaut.

[ @article= ] 'article'

Nom de l'article. Le nom doit être unique dans la publication. article est de type sysname et n'a pas de valeur par défaut. article doit être sur l'ordinateur local exécutant Microsoft SQL Server, et doit respecter les règles applicables aux identificateurs.

[ @source_object= ] 'source_object'

Est l'objet de base de données à publier. source_object est de type sysname et n'a pas de valeur par défaut. Pour plus d'informations sur les types d'objets susceptibles d'être publiés en utilisant la réplication de fusion, consultez Publier des données et des objets de base de données.

[ @type= ] 'type'

Est le type de l'article. type est sysname, avec une valeur par défaut table et peut être l'une des valeurs suivantes.

Valeur

Description

table (valeur par défaut)

Table avec schéma et données. La réplication surveille la table pour déterminer les données à répliquer.

func schema only

Fonction avec schéma uniquement.

indexed view schema only

Vue indexée avec schéma uniquement.

proc schema only

Procédure stockée avec schéma uniquement.

synonym schema only

Synonyme avec schéma uniquement.

view schema only

Vue avec schéma uniquement.

[ @description= ] 'description'

Est une description de l'article. description est de type nvarchar(255), avec NULL comme valeur par défaut.

[ @column_tracking= ] 'column_tracking'

Est le paramètre du suivi de niveau colonne. column_tracking est de type nvarchar(10), avec FALSE comme valeur par défaut. true active le suivi de colonne. false désactive le suivi au niveau de la colonne et conserve la détection des conflits au niveau de la ligne. Si la table est déjà publiée dans d'autres publications de fusion, vous devez utiliser la même valeur de suivi de colonne que celle des articles existants basés sur cette table. Ce paramètre concerne uniquement les articles de table.

Remarque Remarque

Si le suivi de lignes est utilisé pour la détection de conflits (valeur par défaut), la table de base peut inclure 1 024 colonnes au maximum, mais les colonnes doivent être filtrées à partir de l'article afin que 246 colonnes au maximum soient publiées. Si le suivi de colonnes est utilisé, la table de base peut inclure 246 colonnes au maximum.

[ @status= ] 'status'

Est l'état de l'article. status est de type nvarchar(10), avec unsynced comme valeur par défaut. S'il possède la valeur active, le script de traitement initial qui permet de publier la table est exécuté. S'il possède la valeur unsynced, le script de traitement initial servant à publier la table sera exécuté lors de la prochaine exécution de l'Agent d'instantané.

[ @pre_creation_cmd= ] 'pre_creation_cmd'

Spécifie ce que le système doit faire si la table existe sur l'abonné lors de l'application de l'instantané. pre_creation_cmd est de type nvarchar(10) et peut prendre l'une des valeurs suivantes.

Valeur

Description

none

Si la table existe déjà côté abonné, aucune action n'est effectuée.

delete

Entraîne une suppression basée sur la clause WHERE dans le filtre de sous-ensemble.

drop (valeur par défaut)

Supprime la table avant de la recréer. Nécessaire pour la prise en charge des Abonnés Microsoft SQL Server Compact.

truncate

Tronque la table de destination.

[ @creation_script= ] 'creation_script'

Est le chemin d'accès et le nom d'un script de schéma d'article facultatif utilisé pour créer l'article dans la base de données d'abonnement. creation_script est de type nvarchar(255), avec NULL comme valeur par défaut.

Remarque Remarque

Les scripts de création ne sont pas exécutés sur les Abonnés SQL Server Compact.

[ @schema_option= ] schema_option

Est un bitmap de l'option de génération de schéma pour l'article donné. schema_option est binary(8) et peut être le produit | (opérateur OR au niveau du bit) d'une ou plusieurs valeurs.

Valeur

Description

0x00

Désactive la génération de scripts par l'Agent d'instantané et utilise le script de précréation de schéma défini dans l'argument creation_script.

0x01

Génère la création d'objets (CREATE TABLE, CREATE PROCEDURE, etc.). Cette valeur est la valeur par défaut pour les articles de procédure stockée.

0x10

Génère un index cluster correspondant. Même si cette option n'est pas activée, les index relatifs aux clés primaires et aux contraintes UNIQUE sont générés s'ils sont déjà définis sur une table publiée.

0x20

Convertit les types de données définis par l'utilisateur (UDT) en types de données de base auprès de l'Abonné. Vous ne pouvez pas utiliser cette option lorsqu'il existe une contrainte CHECK ou DEFAULT sur une colonne de type défini par l'utilisateur (UDT), si une colonne UDT fait partie de la clé primaire, ou si une colonne calculée désigne une colonne UDT.

0x40

Génère les index non-cluster correspondants. Même si cette option n'est pas activée, les index relatifs aux clés primaires et aux contraintes UNIQUE sont générés s'ils sont déjà définis sur une table publiée.

0x80

Réplique les contraintes PRIMARY KEY. Tous les index relatifs à la contrainte sont également répliqués, même si les options 0x10 et 0x40 ne sont pas activées.

0x100

Réplique les déclencheurs utilisateur, si ceux-ci sont définis, sur un article de table.

0x200

Réplique les contraintes FOREIGN KEY. Si la table référencée ne fait pas partie d'une publication, aucune contrainte FOREIGN KEY appliquée à une table publiée n'est répliquée.

0x400

Réplique les contraintes CHECK.

0x800

Réplique les valeurs par défaut.

0x1000

Réplique le classement au niveau des colonnes.

0x2000

Réplique les propriétés étendues associées à l'objet source de l'article publié.

0x4000

Réplique les contraintes UNIQUE. Tous les index relatifs à la contrainte sont également répliqués, même si les options 0x10 et 0x40 ne sont pas activées.

0x8000

Cette option n'est pas valide pour les serveurs de publication qui exécutent SQL Server 2005 ou des versions ultérieures.

0x10000

Réplique les contraintes CHECK en tant que NOT FOR REPLICATION afin que les contraintes ne soient pas appliquées durant la synchronisation.

0x20000

Réplique les contraintes FOREIGN KEY en tant que NOT FOR REPLICATION afin que les contraintes ne soient pas appliquées durant la synchronisation.

0x40000

Réplique les groupes de fichiers associés à une table ou un index partitionné.

0x80000

Réplique le schéma de partition d'une table partitionnée.

0x100000

Réplique le schéma de partition d'un index partitionné.

0x200000

Réplique les statistiques d'une table.

0x400000

Réplique des liaisons par défaut.

0x800000

Réplique des liaisons de règle.

0x1000000

Réplique l'index de texte intégral.

0x2000000

Les collections de schéma XML liées aux colonnes xml ne sont pas répliquées.

0x4000000

Réplique les index sur les colonnes xml.

0x8000000

Crée n'importe quel schéma qui n'est pas déjà présent sur l'abonné.

0x10000000

Convertit les colonnes xml en ntext sur l'Abonné.

0x20000000

Convertit les types de données LOB (Large Object) (nvarchar(max), varchar(max) et varbinary(max)) introduits dans SQL Server 2005 en types de données pris en charge dans SQL Server 2000.

0x40000000

Réplique des autorisations.

0x80000000

Tente de supprimer les dépendances à tous les objets ne faisant pas partie de la publication.

0x100000000

Utilisez cette option pour répliquer l'attribut FILESTREAM s'il est spécifié sur les colonnes varbinary(max). Ne spécifiez pas cette option si vous répliquez des tables sur des Abonnés SQL Server 2005. La réplication de tables qui possèdent des colonnes FILESTREAM sur des Abonnés SQL Server 2000 n'est pas prise en charge, quelle que soit la façon dont cette option de schéma est définie. Consultez l'option connexe 0x800000000.

0x200000000

Convertit les types de données de date et d'heure (date, time, datetimeoffset et datetime2) introduits dans SQL Server 2008 en types de données pris en charge dans les versions antérieures de SQL Server.

0x400000000

Réplique l'option de compression pour les données et les index. Pour plus d'informations, consultez Compression de données.

0x800000000

Définissez cette option pour stocker les données FILESTREAM dans leur propre groupe de fichiers sur l'Abonné. Si cette option n'est pas définie, les données FILESTREAM sont stockées dans le groupe de fichiers par défaut. La réplication ne crée pas de groupes de fichiers ; par conséquent, si vous définissez cette option, vous devez créer le groupe de fichiers avant d'appliquer l'instantané à l'Abonné. Pour plus d'informations sur la création d'objets avant d'appliquer l'instantané, consultez Exécuter des scripts avant et après l'application de l'instantané.

Consultez l'option connexe 0x100000000.

0x1000000000

Convertit les types définis par l'utilisateur (UDT) du common language runtime (CLR) en varbinary(max) afin que les colonnes de type UDT puissent être répliquées sur les Abonnés qui exécutent SQL Server 2005.

0x2000000000

Convertit le type de données hierarchyid en varbinary(max) afin que les colonnes de type hierarchyid puissent être répliquées sur les Abonnés qui exécutent SQL Server 2005. Pour plus d'informations sur l'utilisation de colonnes hierarchyid dans les tables répliquées, consultez hierarchyid (Transact-SQL).

0x4000000000

Réplique tous les index filtrés sur la table. Pour plus d'informations sur les index filtrés, consultez Créer des index filtrés.

0x8000000000

Convertit les types de données geography et geometry en type varbinary(max) afin que les colonnes de ces types puissent être répliquées sur les Abonnés qui exécutent SQL Server 2005.

0x10000000000

Réplique les index sur les colonnes de type geography et geometry.

Si la valeur est NULL, le système génère automatiquement une option de schéma valide pour l'article. Le tableau Option de schéma par défaut de la section Notes montre la valeur qui est choisie en fonction du type de l'article. En outre, toutes les valeurs schema_option ne sont pas valides pour chaque type de réplication et d'article. Le tableau Option de schéma valide de la section Notes montre les options qui peuvent être spécifiées pour un type d'article donné.

Remarque Remarque

Le paramètre schema_option affecte uniquement les options de réplication de l'instantané initial. Une fois que le schéma initial a été généré par l'Agent d'instantané et appliqué sur l'abonné, la réplication des modifications du schéma de publication sur l'abonné s'effectue en fonction des règles de réplication des modifications de schéma et de la valeur du paramètre replicate_ddl spécifié dans sp_addmergepublication. Pour plus d'informations, consultez Modifier le schéma dans les bases de données de publication.

[ @subset_filterclause= ] 'subset_filterclause'

Est une clause WHERE spécifiant le filtrage horizontal d'un article de table sans mot WHERE inclus. subset_filterclause est de type nvarchar(1000), avec une chaîne vide comme valeur par défaut.

Important Important

Pour des raisons de performances, il est recommandé de ne pas appliquer de fonctions aux noms de colonnes dans les clauses de filtres de lignes paramétrables, comme LEFT([MyColumn]) = SUSER_SNAME(). Si vous utilisez HOST_NAME dans une clause de filtre et que vous remplacez la valeur de HOST_NAME, vous pouvez être amené à convertir les types de données à l'aide de CONVERT. Pour plus d'informations sur les recommandations dans ce cas de figure, consultez la section se rapportant au remplacement de la valeur de HOST_NAME() dans Filtres de lignes paramétrés.

[ @article_resolver= ] 'article_resolver'

Est l'outil de résolution COM utilisé pour résoudre les conflits sur l'article de table ou l'assembly .NET Framework appelé pour exécuter une logique métier personnalisée sur l'article de table. article_resolver est de type varchar(255), avec NULL comme valeur par défaut. Les valeurs disponibles pour ce paramètre sont répertoriées dans la liste des outils de résolution personnalisés Microsoft. Si la valeur fournie ne correspond pas à l'un des outils de résolution Microsoft, SQL Server utilise l'outil de résolution spécifié et non celui qui est fourni par le système. Utilisez la procédure sp_enumcustomresolvers pour établir la liste des outils de résolution personnalisés disponibles. Pour plus d'informations, consultez Exécuter la logique métier lors de la synchronisation de fusion et Détection et résolution avancées des conflits de réplication de fusion.

[ @resolver_info= ] 'resolver_info'

Permet de définir les informations supplémentaires requises par un outil de résolution personnalisé. Certains outils de résolution Microsoft nécessitent une colonne en guise d'entrée. resolver_info est de type nvarchar(255), avec NULL comme valeur par défaut. Pour plus d'informations, consultez Programmes de résolution COM Microsoft.

[ @source_owner= ] 'source_owner'

Représente le nom du propriétaire de source_object. source_owner est de type sysname, avec NULL comme valeur par défaut. Si la valeur NULL est affectée à l'argument, l'utilisateur actuel est supposé être le propriétaire.

[ @destination_owner= ] 'destination_owner'

Est le propriétaire de l'objet dans la base de données d'abonnement, s'il ne s'agit pas de « dbo ». destination_owner est de type sysname, avec NULL comme valeur par défaut. Si la valeur NULL est affectée à l'argument, « dbo » est supposé être le propriétaire.

[ @vertical_partition= ] 'column_filter'

Active ou désactive le filtrage de colonne sur un article de table. vertical_partition est de type nvarchar(5), avec FALSE comme valeur par défaut.

false indique l'absence de filtrage vertical et la publication de toutes les colonnes.

true supprime toutes les colonnes à l'exception des colonnes clés primaire déclarées et des colonnes ROWGUID. Les colonnes sont ajoutées au moyen de sp_mergearticlecolumn.

[ @auto_identity_range= ] 'automatic_identity_range'

Active et désactive la gestion automatique des plages d'identité pour l'article de table sur une publication, lorsqu'elle est créée. auto_identity_range est de type nvarchar(5), avec FALSE comme valeur par défaut. true active la gestion automatique des plages d'identité, tandis que false la désactive.

Remarque Remarque

auto_identity_range est déconseillé et n'est fourni qu'à des fins de compatibilité ascendante. Vous devez utiliser identityrangemanagementoption afin de spécifier les options de gestion des plages d'identité. Pour plus d'informations, consultez Répliquer des colonnes d'identité.

[ @pub_identity_range= ] pub_identity_range

Contrôle la taille de la plage d'identité allouée à un abonné disposant d'un abonnement serveur lorsque la gestion automatique des plages d'identité est utilisée. Cette plage d'identité est réservée à un Abonné de republication qui peut l'allouer à ses propres Abonnés. pub_identity_range est de type bigint, avec NULL comme valeur par défaut. Vous devez spécifier ce paramètre si identityrangemanagementoption a la valeur auto ou si auto_identity_range a la valeur true.

[ @identity_range= ] identity_range

Contrôle la taille de la plage d'identité allouée au serveur de publication et à l'Abonné lorsque la gestion automatique des plages d'identité est utilisée. identity_range est de type bigint, avec NULL comme valeur par défaut. Vous devez spécifier ce paramètre si identityrangemanagementoption a la valeur auto ou si auto_identity_range a la valeur true.

Remarque Remarque

identity_range contrôle la taille des plages d'identité sur les Abonnés de republication utilisant les précédentes versions de SQL Server.

[ @threshold= ] threshold

Valeur de pourcentage qui contrôle le moment où l'Agent de fusion affecte une nouvelle plage d'identité. Lorsque le pourcentage de valeurs spécifié dans threshold est utilisé, l'Agent de fusion crée une nouvelle plage d'identité. threshold est de type int, avec NULL comme valeur par défaut. Vous devez spécifier ce paramètre si identityrangemanagementoption a la valeur auto ou si auto_identity_range a la valeur true.

[ @verify_resolver_signature= ] verify_resolver_signature

Spécifie si une signature numérique est vérifiée avant d'utiliser un résolveur dans une réplication de fusion. verify_resolver_signature est de type int, avec 1 comme valeur par défaut.

0 indique que la signature ne sera pas vérifiée.

1 indique que la signature sera vérifiée pour déterminer si elle provient d'une source approuvée.

[ @destination_object= ] 'destination_object'

Est le nom de l'objet créé dans la base de données d'abonnement. destination_object est sysname, avec la valeur dans @source_object comme valeur par défaut. Ce paramètre ne peut être spécifié que si l'article est un article de schéma exclusivement, tel que le sont les procédures stockées, vues et fonctions définies par l'utilisateur. Si l'article spécifié est un article de table, la valeur de @source_object écrase la valeur de destination_object.

[ @allow_interactive_resolver= ] 'allow_interactive_resolver'

Active ou désactive l'utilisation du résolveur interactif sur un article. allow_interactive_resolver est de type nvarchar(5), avec FALSE comme valeur par défaut. true active l'utilisation du résolveur interactif sur un article ; false la désactive.

Remarque Remarque

L'outil de résolution interactif n'est pas pris en charge par les Abonnés SQL Server Compact.

[ @fast_multicol_updateproc= ] 'fast_multicol_updateproc'

Ce paramètre est déconseillé et n'est maintenu que dans un but de compatibilité ascendante avec les scripts déjà établis.

[ @check_permissions= ] check_permissions

Image bitmap des autorisations au niveau de la table qui seront vérifiées lorsque l'Agent de fusion appliquera les modifications au serveur de publication. Si la connexion d'accès/le compte d'utilisateur du serveur de publication utilisé par le processus de fusion ne possède pas les autorisations de table appropriées, les modifications non valides sont enregistrées en tant que conflits. check_permissions est int et peut être le produit | (opérateur OR au niveau du bit) d'une ou plusieurs des valeurs suivantes.

Valeur

Description

0x00 (valeur par défaut)

Les autorisations ne sont pas vérifiées.

0x10

Les autorisations sont vérifiées sur le serveur de publication avant que les opérations d'insertion exécutées sur l'Abonné puissent être téléchargées.

0x20

Les autorisations sont vérifiées sur le serveur de publication avant que les opérations de mise à jour exécutées sur l'Abonné puissent être téléchargées.

0x40

Les autorisations sont vérifiées sur le serveur de publication avant que les opérations de suppression exécutées sur l'Abonné puissent être téléchargées.

[ @force_invalidate_snapshot= ] force_invalidate_snapshot

Signale que l'action entreprise par cette procédure stockée peut invalider un instantané existant. force_invalidate_snapshot est de type bit, avec 0 comme valeur par défaut.

0 indique que l'ajout d'un article n'invalide l'instantané. Si la procédure stockée détecte que la modification ne nécessite pas un nouvel instantané, une erreur se produit et aucune modification n'est effectuée.

1 indique que l'ajout d'un article peut entraîner l'invalidation de l'instantané. En outre, s'il existe des abonnements nécessitant un nouvel instantané, cette valeur permet de marquer l'instantané existant comme obsolète et de générer un nouvel instantané. force_invalidate_snapshot a la valeur 1en ajoutant un article à une publication avec un instantané existant.

[ @published_in_tran_pub= ] 'published_in_tran_pub'

Indique qu'un article d'une publication de fusion est également publié dans une publication transactionnelle. published_in_tran_pub est de type nvarchar(5), avec FALSE comme valeur par défaut. true indique que l'article est également publié dans une publication transactionnelle.

[ @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 de type bit, avec 0 comme valeur par défaut.

0 indique que l'ajout d'un article n'entraîne 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 indique que les modifications apportées à l'article de fusion entraînent la réinitialisation des abonnements existants et autorise la réinitialisation de l'abonnement. force_reinit_subscription a la valeur 1 lorsque subset_filterclause spécifie un filtre de lignes paramétrable.

[ @logical_record_level_conflict_detection= ] 'logical_record_level_conflict_detection'

Spécifie le niveau de détection de conflit pour un article qui est membre d'un enregistrement logique. logical_record_level_conflict_detection est de type nvarchar(5), avec FALSE comme valeur par défaut.

La valeur true indique qu'un conflit sera détecté si des modifications sont apportées à un point quelconque de l'enregistrement logique.

La valeur false indique que la détection de conflit par défaut est utilisée telle que spécifiée par column_tracking. Pour plus d'informations, consultez Regrouper les modifications apportées à des lignes connexes à l'aide d'enregistrements logiques.

Remarque Remarque

Étant donné que les enregistrements logiques ne sont pas pris en charge par les Abonnés SQL Server Compact, vous devez spécifier la valeur false pour logical_record_level_conflict_detection afin de prendre en charge ces Abonnés.

[ @logical_record_level_conflict_resolution= ] 'logical_record_level_conflict_resolution'

Spécifie le niveau de résolution de conflit pour un article qui est membre d'un enregistrement logique. logical_record_level_conflict_resolution est de type nvarchar(5), avec FALSE comme valeur par défaut.

La valeur true indique que l'enregistrement logique gagnant complet remplace l'enregistrement logique perdant.

La valeur false spécifie que les lignes gagnantes ne sont pas limitées à l'enregistrement logique. Si la valeur de logical_record_level_conflict_detection est true, celle de logical_record_level_conflict_resolution doit être également définie sur true. Pour plus d'informations, consultez Regrouper les modifications apportées à des lignes connexes à l'aide d'enregistrements logiques.

Remarque Remarque

Étant donné que les enregistrements logiques ne sont pas pris en charge par les Abonnés SQL Server Compact, vous devez spécifier la valeur false pour logical_record_level_conflict_resolution afin de prendre en charge ces Abonnés.

[ @partition_options= ] partition_options

Définit le mode de partitionnement des données de l'article, ce qui permet l'optimisation des performances lorsque toutes les lignes appartiennent à une seule partition ou à un seul abonnement. partition_options est de type tinyint et peut prendre l'une des valeurs suivantes.

Valeur

Description

0 (par défaut)

Le filtrage de l'article est statique ou il ne produit pas un sous-ensemble unique de données pour chaque partition, c'est-à-dire une partition en « chevauchement ».

1

Les partitions se chevauchent, et les mises à jour DML (langage de manipulation des données) effectuées sur l'abonné ne peuvent pas modifier la partition à laquelle une ligne appartient.

2

Le filtrage de l'article produit des partitions qui ne se chevauchent pas, mais plusieurs abonnés peuvent recevoir la même partition.

3

Le filtrage de l'article produit des partitions qui ne se chevauchent pas et qui sont uniques pour chaque abonnement.

Remarque Remarque

Si la table source d'un article est déjà publiée dans une autre publication, la valeur de partition_options doit être la même pour les deux articles.

[ @processing_order= ] processing_order

Indique l'ordre de traitement des articles dans une publication de fusion. processing_order est de type int, avec 0 comme valeur par défaut. 0 indique que l'article n'est pas ordonné, et toute autre valeur représente la valeur ordinale de l'ordre de traitement pour cet article. Les articles sont traités à partir de la valeur la plus faible vers la valeur la plus élevée. Si deux articles ont la même valeur, l'ordre de traitement est déterminé par l'ordre du surnom de l'article dans la table système sysmergearticles. Pour plus d'informations, consultez Spécifier l'ordre de traitement d'articles de fusion.

[ @subscriber_upload_options= ] subscriber_upload_options

Définit les restrictions imposées aux mises à jour effectuées sur un abonné disposant d'un abonnement client. Pour plus d'informations, consultez Optimiser les performances de la réplication de fusion avec les articles en téléchargement seul. subscriber_upload_options est de type tinyint et peut prendre l'une des valeurs suivantes.

Valeur

Description

0 (par défaut)

Aucune restriction. Les modifications sur l'abonné sont téléchargées par le serveur de publication.

1

Les modifications sont autorisées sur l'abonné, mais elles ne sont pas téléchargées sur le serveur de publication.

2

Les modifications ne sont pas autorisées sur l'abonné.

La modification de subscriber_upload_options nécessite la réinitialisation de l'abonnement en appelant sp_reinitmergepullsubscription (Transact-SQL).

Remarque Remarque

Si la table source d'un article est déjà publiée dans une autre publication, la valeur de subscriber_upload_options doit être la même pour les deux articles.

[ @identityrangemanagementoption= ] identityrangemanagementoption

Spécifie la façon dont la gestion des plages d'identité est gérée pour l'article. identityrangemanagementoption est de type nvarchar(10) et peut prendre l'une des valeurs suivantes.

Valeur

Description

none

Désactive la gestion automatique des plages d'identité.

manual

Marque la colonne d'identité en utilisant NOT FOR REPLICATION pour activer la gestion manuelle des plages d'identité.

auto

Spécifie la gestion automatique des plages d'identité.

NULL (par défaut)

Est défini par défaut avec la valeur nonelorsque la valeur de auto_identity_range n'est pas true.

Pour la compatibilité ascendante, lorsque la valeur de identityrangemanagementoption est NULL, la valeur de auto_identity_range est vérifiée. Cependant, lorsque la valeur de identityrangemanagementoption n'est pas NULL, la valeur de auto_identity_range est ignorée. Pour plus d'informations, consultez Répliquer des colonnes d'identité.

[ @delete_tracking= ] 'delete_tracking'

Indique si les suppressions sont répliquées. delete_tracking est de type nvarchar(5), avec TRUE comme valeur par défaut. false indique que les suppressions ne sont pas répliquées. true indique que les suppressions sont répliquées, ce qui correspond au comportement normal pour la réplication de fusion. Lorsque delete_tracking a la valeur false, les lignes supprimées sur l'Abonné doivent être supprimées manuellement sur le serveur de publication et les lignes supprimées sur le serveur de publication doivent être supprimées manuellement sur l'Abonné.

Important Important

L'affectation de la valeur false à delete_tracking conduit à une non-convergence. Si la table source d'un article est déjà publiée dans une autre publication, la valeur de delete_tracking doit être la même pour les deux articles.

Remarque Remarque

Il est impossible de définir les options de delete_tracking à l'aide de l'Assistant Nouvelle publication ou de la boîte de dialogue Propriétés de la publication.

[ @compensate_for_errors= ] 'compensate_for_errors'

Indique si des actions de compensation interviennent lorsque des erreurs se produisent pendant la synchronisation. compensate_for_errors i est de type nvarchar(5), avec FALSE comme valeur par défaut. Si cette option a la valeur true, les modifications qui ne peuvent pas être appliquées sur un abonné ou un serveur de publication pendant la synchronisation entraînent toujours des actions de compensation destinées à les annuler ; toutefois, un abonné configuré de façon incorrecte qui génère une erreur peut entraîner des modifications sur d'autres abonnés et serveurs de publication qu'il faudra annuler. false désactive ces actions de compensation, toutefois, les erreurs sont toujours enregistrées pendant que la compensation et les fusions suivantes continuent de tenter d'appliquer les modifications jusqu'à ce que cela fonctionne.

Important Important

Bien que les données des lignes affectées puissent sembler être hors de convergence, dès que vous résolvez une erreur, des modifications peuvent être appliquées et les données convergent. Si la table source d'un article est déjà publiée dans une autre publication, la valeur de compensate_for_errors doit être la même pour les deux articles.

[ @stream_blob_columns= ] 'stream_blob_columns'

Spécifie qu'une optimisation de flux de données est utilisée lors de la réplication de colonnes d'objets binaires volumineux. stream_blob_columns est de type nvarchar(5), avec FALSE comme valeur par défaut. true signifie que l'optimisation sera tentée. stream_blob_columns a la valeur true lorsque FILESTREAM est activé. Cela permet la réplication des données FILESTREAM dans le but d'optimiser et de réduire l'utilisation de la mémoire. Pour forcer les articles de la table FILESTREAM à ne pas utiliser le flux d'objet blob, utilisez sp_changemergearticle pour affecter la valeur false à stream_blob_columns.

Important Important

L'activation de cette optimisation de mémoire peut réduire les performances de l'Agent de fusion pendant la synchronisation. Cette option ne doit être utilisée que lors de la réplication de colonnes contenant des mégaoctets de données.

Remarque Remarque

Certaines fonctionnalités de réplication de fusion, telles que les enregistrements logiques, peuvent encore empêcher l'utilisation de l'optimisation du flux lors de la réplication d'objets BLOB, même lorsque stream_blob_columns a la valeur true.

0 (succès) ou 1 (échec)

sp_addmergearticle est utilisée dans la réplication de fusion.

Lorsque vous publiez des objets, leurs définitions sont copiées sur les abonnés. Si vous publiez un objet de base de données qui dépend d'un ou de plusieurs autres objets, vous devez publier tous les objets référencés. Par exemple, si vous publiez une vue qui dépend d'une table, vous devez publier la table également.

Si vous spécifiez la valeur 3 pour partition_options, il ne peut y avoir qu'un seul abonnement pour chaque partition de données dans cet article. Si un deuxième abonnement est créé dans lequel le critère de filtrage du nouvel abonnement produit la même partition que l'abonnement existant, ce dernier est supprimé.

Si vous spécifiez la valeur 3 pour partition_options, les métadonnées sont nettoyées à chaque exécution de l'Agent de fusion et l'instantané partitionné expire plus rapidement. Lorsque vous utilisez cette option, pensez à activer l'instantané partitionné requis par l'abonné. Pour plus d'informations, consultez Instantanés des publications de fusion avec des filtres paramétrés.

Pour ajouter un article avec un filtre horizontal statique, à l'aide de subset_filterclause, à une partition existante dont les articles possèdent des filtres paramétrés, il est nécessaire de réinitialiser les abonnements.

Lorsque vous spécifiez processing_order, il est recommandé de conserver des écarts entre les valeurs d'ordre des articles, pour faciliter la définition ultérieure de nouvelles valeurs. Par exemple, si vous avez trois articles Article1, Article2 et Article3, définissez processing_order sur 10, 20 et 30, plutôt que sur 1, 2 et 3. Pour plus d'informations, consultez Spécifier l'ordre de traitement d'articles de fusion.

Tableau des options de schéma par défaut

Le tableau ci-dessous présente la valeur par défaut qui est définie par la procédure stockée si une valeur NULL est spécifiée pour schema_option, ce qui dépend du type de l'article.

Type de l'article

Valeur de l'option de schéma

func schema only

0x01

indexed view schema only

0x01

proc schema only

0x01

table

  • 0x0C034FD1 - SQL Server 2005 et les publications ultérieures compatibles avec un instantané en mode natif.

  • 0x08034FF1 - SQL Server 2005 et les publications ultérieures compatibles avec un instantané en mode caractères.

view schema only

0x01

Remarque Remarque

Si la publication prend en charge les versions précédentes de SQL Server, l'option de schéma par défaut de table est 0x30034FF1.

Tableau des options de schéma valides

Le tableau suivant présente les valeurs autorisées pour schema_option en fonction du type de l'article.

Type de l'article

Valeurs de l'option de schéma

func schema only

0x01 et 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 et 0x200000

proc schema only

0x01 et 0x2000

table

Toutes les options.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 et 0x200000

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Requiert l'appartenance au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft