Procédure : définir la méthode de propagation de modifications de données dans des articles transactionnels (programmation Transact-SQL de la réplication)

Par défaut, la réplication génère automatiquement les procédures stockées utilisées pour propager les modifications vers les Abonnés. La réplication transactionnelle vous permet de contrôler comment les modifications sont propagées du serveur de publication aux Abonnés et cette méthode de propagation peut être définie par programme lorsqu'un article est créé et modifié ultérieurement à l'aide de procédures stockées de réplication.

Notes

Vous pouvez spécifier une méthode de propagation différente pour chaque type d'opération DML (Data Manipulation Language) (insertion, mise à jour ou suppression) effectué sur une ligne de données publiées.

Pour plus d'informations, consultez Spécification du mode de propagation des modifications des articles transactionnels.

Pour créer un article qui utilise des commandes Transact-SQL pour propager des modifications de données

  • Dans la base de données de publication du serveur de publication, exécutez sp_addarticle. Spécifiez le nom de la publication à laquelle l'article appartient pour @publication, le nom de l'article pour @article, l'objet de base de données qui est publié pour @source_object et la valeur SQL pour au moins un des paramètres suivants :

    • @ins_cmd – contrôle la réplication des commandes INSERT.

    • @upd_cmd – contrôle la réplication des commandes UPDATE.

    • @del_cmd – contrôle la réplication des commandes DELETE.

    Notes

    Lors de la spécification de la valeur SQL pour un des paramètres ci-dessus, les commandes de ce type seront répliquées sur l'Abonné sous la forme de la commande Transact-SQL appropriée.

    Pour plus d'informations, consultez Procédure : définir un article (programmation Transact-SQL de la réplication).

Pour créer un article qui ne propage pas les modifications de données

  • Dans la base de données de publication du serveur de publication, exécutez sp_addarticle. Spécifiez le nom de la publication à laquelle l'article appartient pour @publication, le nom de l'article pour @article, l'objet de base de données qui est publié pour @source_object et la valeur NONE pour au moins un des paramètres suivants :

    • @ins_cmd – contrôle la réplication des commandes INSERT.

    • @upd_cmd – contrôle la réplication des commandes UPDATE.

    • @del_cmd – contrôle la réplication des commandes DELETE.

    Notes

    Lors de la spécification de la valeur NONE pour un des paramètres ci-dessus, les commandes de ce type ne seront pas répliquées sur l'Abonné.

    Pour plus d'informations, consultez Procédure : définir un article (programmation Transact-SQL de la réplication).

Pour créer un article avec des procédures stockées personnalisées modifiées par utilisateur

  1. Dans la base de données de publication du serveur de publication, exécutez sp_addarticle. Spécifiez le nom de la publication à laquelle l'article appartient pour @publication, le nom de l'article pour @article, l'objet de base de données qui est publié pour @source_object, une valeur pour le masque de bits @schema_option qui contient la valeur 0x02 (permet la génération automatique de procédures stockées personnalisées) et au moins un des paramètres suivants :

    • @ins_cmd – spécifiez la valeur CALL sp_MSins_nom_article, où nom_article est la valeur spécifiée pour @article.

    • @del_cmd – spécifiez la valeur CALL sp_MSdel_nom_article ou XCALL sp_MSdel_nom_article, où nom_article est la valeur spécifiée pour @article.

    • @upd_cmd – spécifiez la valeur SCALL sp_MSupd_nom_article, CALL sp_MSupd_nom_article, XCALL sp_MSupd_nom_article ou MCALL sp_MSupd_nom_article, où nom_article est la valeur spécifiée pour @article.

    Notes

    Pour chacun des paramètres de commande ci-dessus, vous pouvez spécifier votre propre nom pour les procédures stockées que la réplication génère.

    Notes

    Pour plus d'informations sur la syntaxe de CALL, SCALL, XCALL et MCALL, consultez Spécification du mode de propagation des modifications des articles transactionnels.

    Pour plus d'informations, consultez Procédure : définir un article (programmation Transact-SQL de la réplication).

  2. Une fois la capture instantanée générée, accédez au dossier de captures instantanées de la publication à laquelle cet article appartient, puis recherchez le fichier .sch dont le nom est identique à celui de l'article. Ouvrez ce fichier à l'aide de Notepad.exe, recherchez la commande CREATE PROCEDURE pour les procédures stockées INSERT, UPDATE ou DELETE, puis modifiez la définition de la procédure pour fournir une logique personnalisée de propagation des modifications de données. Pour plus d'informations, consultez Spécification du mode de propagation des modifications des articles transactionnels.

    AttentionAttention

    La modification des fichiers de captures instantanées générés par la réplication nécessite la plus grande prudence. Vous devez tester et prendre en charge la logique personnalisée des procédures stockées personnalisées ; en effet, Microsoft ne fournit pas de prise en charge pour cette logique.

Pour créer un article avec des scripts personnalisés dans les procédures stockées personnalisées pour propager les modifications de données

  1. Dans la base de données de publication du serveur de publication, exécutez sp_addarticle. Spécifiez le nom de la publication à laquelle l'article appartient pour @publication, le nom de l'article pour @article, l'objet de base de données qui est publié pour @source_object, une valeur pour le masque de bits @schema_option qui contient la valeur 0x02 (permet la génération automatique de procédures stockées personnalisées) et au moins un des paramètres suivants :

    • @ins_cmd – spécifiez la valeur CALL sp_MSins_nom_article, où nom_article est la valeur spécifiée pour @article.

    • @del_cmd – spécifiez la valeur CALL sp_MSdel_nom_article ou XCALL sp_MSdel_nom_article, où nom_article est la valeur spécifiée pour @article.

    • @upd_cmd – spécifiez la valeur SCALL sp_MSupd_nom_article, CALL sp_MSupd_nom_article, XCALL sp_MSupd_nom_article, MCALL sp_MSupd_nom_article, où nom_article est la valeur spécifiée pour @article.

    Notes

    Pour chacun des paramètres de commande ci-dessus, vous pouvez spécifier votre propre nom pour les procédures stockées que la réplication génère.

    Notes

    Pour plus d'informations sur la syntaxe de CALL, SCALL, XCALL et MCALL, consultez Spécification du mode de propagation des modifications des articles transactionnels.

    Pour plus d'informations, consultez Procédure : définir un article (programmation Transact-SQL de la réplication).

  2. Dans la base de données de publication du serveur de publication, utilisez l'instruction ALTER PROCEDURE pour modifier sp_scriptpublicationcustomprocs afin qu'il retourne un script CREATE PROCEDURE pour les procédures stockées personnalisées INSERT, UPDATE et DELETE. Pour plus d'informations, consultez Spécification du mode de propagation des modifications des articles transactionnels.

    AttentionAttention

    La modification de sp_scriptpublicationcustomprocs exige le plus grand soin ; vous devez tester et prendre en charge la logique personnalisée dans cette procédure stockée. Microsoft ne fournit pas de prise en charge pour la logique personnalisée ou les modifications apportées aux procédures stockées système.

Pour modifier la méthode de propagation des modifications pour un article existant

  1. Dans la base de données de publication du serveur de publication, exécutez sp_changearticle. Spécifiez @publication, @article, la valeur ins_cmd, upd_cmd ou del_cmd pour @property, ainsi que la méthode de propagation appropriée pour @value.

  2. Répétez l'étape 1 pour chaque méthode de propagation à modifier.