Ajout et suppression d'articles de publications existantes
Après la création d'une publication, il est possible d'ajouter et de supprimer des articles. Vous pouvez ajouter des articles à tout moment ; en revanche, les actions visant à supprimer les articles dépendent du type de réplication et du moment de la suppression de l'article.
Ajout d'articles
L'ajout d'un article se déroule comme suit : ajout de l'article à la publication, création d'une nouvelle capture instantanée de la publication, synchronisation de l'abonnement pour appliquer le schéma et les données du nouvel article.
[!REMARQUE]
Si vous ajoutez un article à une publication de fusion et qu'un article existant dépend du nouvel article, vous devez spécifier un ordre de traitement pour les deux articles à l'aide du paramètre @processing_order de sp_addmergearticle et sp_changemergearticle. Examinez les cas suivants : vous publiez une table mais vous ne publiez pas une fonction référencée par la table. Si vous ne publiez pas la fonction, la table ne peut pas être créée au niveau de l'abonné. Lorsque vous ajoutez la fonction à la publication : spécifiez la valeur 1 pour le paramètre @processing_order de sp_addmergearticle, spécifiez la valeur 2 pour le paramètre @processing_order de sp_changemergearticle, et spécifiez le nom de la table pour le paramètre @article. Cet ordre de traitement permet de créer la fonction au niveau de l'abonné avant la table qui en dépend. Vous pouvez utiliser différents nombres pour chaque article tant que le nombre de la fonction est inférieur au nombre de la table.
Ajoutez un ou plusieurs articles à l'aide de l'une des méthodes suivantes :
Microsoft SQL Server Management Studio: Procédure : ajouter et supprimer des articles dans une publication (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : définir un article (programmation Transact-SQL de la réplication)
Programmation d'objets RMO (Replication Management Objects) : Procédure : définir un article (programmation RMO)
Après l'ajout d'un article à une publication, vous devez créer une nouvelle capture instantanée de celle-ci (et de toutes les partitions s'il s'agit d'une publication de fusion avec des filtres paramétrés). L'Agent de distribution ou de fusion copie ensuite le schéma et les données du nouvel article vers l'Abonné (il ne réinitialise pas l'ensemble de la publication).
Pour créer une nouvelle capture instantanée
SQL Server Management Studio: Procédure : créer et appliquer la capture instantanée initiale (SQL Server Management Studio)
Programmation Transact-SQL de la réplication : Procédure : créer la capture instantanée initiale (programmation Transact-SQL de la réplication)
Programmation RMO : Procédure : créer la capture instantanée initiale (programmation RMO)
Pour créer une nouvelle capture instantanée d'une publication de fusion avec des filtres paramétrés
SQL Server Management Studio: Procédure : créer une capture instantanée pour une publication de fusion avec des filtres paramétrables (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : créer une capture instantanée pour une publication de fusion avec des filtres paramétrables (programmation Transact-SQL de la réplication)
Après la création de la capture instantanée, synchronisez l'abonnement pour copier le schéma et les données du nouvel article.
Pour synchroniser un abonnement d'envoi
SQL Server Management Studio: Procédure : synchroniser un abonnement par envoi de données (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : synchroniser un abonnement par envoi de données (push) (Programmation de la réplication)
Programmation RMO : Procédure : pour synchroniser un abonnement d'envoi de données (programmation RMO)
Pour synchoniser un abonnement extrait
SQL Server Management Studio: Procédure : synchroniser un abonnement par extraction de données (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : synchroniser un abonnement par extraction de données (pull) (Programmation de la réplication)
Programmation RMO : Procédure : synchroniser un abonnement par extraction de données (pull) (Programmation RMO)
Suppression d'articles
Les articles peuvent être supprimés d'une publication à tout moment mais vous devez prendre en compte les comportements suivants :
La suppression d'un article d'une publication ne supprime pas l'objet de la base de données de publication ou l'objet correspondant de la base de données d'abonnement. Utilisez DROP <Objet> pour supprimer ces objets, le cas échéant. Lorsque vous supprimez un article lié à d'autres articles publiés par l'intermédiaire de contraintes de clés étrangères, il est conseillé de supprimer manuellement la table sur l'Abonné ou d'avoir recours à une exécution de script à la demande : spécifiez un script qui comprend les instructions DROP <Objet>. Pour plus d'informations, consultez Procédure : exécuter des scripts pendant la synchronisation (programmation Transact-SQL de la réplication).
Pour les publications de fusion présentant un niveau de compatibilité égal ou supérieur à 90RTM, les articles peuvent être supprimés à tout moment mais une nouvelle capture instantanée s'impose. De plus :
Si l'article est un article parent dans une relation d'enregistrement logique ou de filtre de jointure, vous devez commencer par supprimer les relations, ce qui nécessite une réinitialisation.
Si un article possède le dernier filtre paramétré d'une publication, les abonnements doivent être réinitialisés.
Pour les publications de fusion présentant un niveau de compatibilité inférieur à 90RTM, il est possible de supprimer les articles sans considérations particulières avant la synchronisation initiale des abonnements. Si un article est supprimé après la synchronisation d'un ou plusieurs abonnements, les abonnements doivent être supprimés, recréés et synchronisés. Pour plus d'informations sur le niveau de compatibilité, consultez la section « Niveau de compatibilité des publications de fusion » dans la rubrique Utilisation de plusieurs versions de SQL Server dans une topologie de réplication.
Pour les publications transactionnelles ou de capture instantanée, les articles peuvent être supprimés sans considérations particulières avant la création des abonnements. Si un article est supprimé après la création d'un ou plusieurs abonnements, les abonnements doivent être supprimés, recréés et synchronisés. Pour plus d'informations sur la suppression d'abonnements, consultez Abonnement à des publications et sp_dropsubscription (Transact-SQL). sp_dropsubscription permet de supprimer un seul article de l'abonnement au lieu de l'abonnement entier.
La suppression d'un article d'une publication consiste à supprimer l'article et à créer une nouvelle capture instantanée de la publication. Dans la mesure où la suppression d'un article invalide la capture instantanée actuelle, une nouvelle capture doit être créée.
Pour supprimer un article d'une publication
SQL Server Management Studio: Procédure : ajouter et supprimer des articles dans une publication (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : supprimer un article (programmation Transact-SQL de la réplication)
Programmation RMO : Procédure : supprimer un article (programmation RMO)
Après la suppression d'un article d'une publication, vous devez créer une nouvelle capture instantanée de celle-ci (et de toutes les partitions s'il s'agit d'une publication de fusion avec des filtres paramétrés).
Pour créer une nouvelle capture instantanée
SQL Server Management Studio: Procédure : créer et appliquer la capture instantanée initiale (SQL Server Management Studio)
Programmation Transact-SQL de la réplication : Procédure : créer la capture instantanée initiale (programmation Transact-SQL de la réplication)
Programmation RMO : Procédure : créer la capture instantanée initiale (programmation RMO)
Pour créer une nouvelle capture instantanée d'une publication de fusion avec des filtres paramétrés
SQL Server Management Studio: Procédure : créer une capture instantanée pour une publication de fusion avec des filtres paramétrables (SQL Server Management Studio)
Programmation Transact-SQL de réplication : Procédure : créer une capture instantanée pour une publication de fusion avec des filtres paramétrables (programmation Transact-SQL de la réplication)
Comme indiqué ci-dessus, la suppression d'un article exige parfois la suppression, la recréation et la synchronisation des abonnements. Pour plus d'informations, consultez Abonnement à des publications et Synchronisation des données.