Partager via


Définir la méthode de propagation des modifications de données des articles transactionnels

S’applique à : SQL Server Azure SQL Managed Instance

Cette rubrique décrit comment définir la méthode de propagation des modifications de données aux articles transactionnels dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL.

Par défaut, la réplication transactionnelle propage les modifications vers les Abonnés à l'aide d'un ensemble de procédures stockées pour chaque article. Vous pouvez remplacer ces procédures par des procédures personnalisées. Pour plus d’informations, consultez Spécifier le mode de propagation des modifications des articles transactionnels.

Avant de commencer

Limitations et restrictions

  • La modification des fichiers d'instantanés générés par la réplication nécessite la plus grande prudence. Testez et prenez en charge la logique personnalisée dans les procédures stockées personnalisées. Microsoft n'assure pas le support de la logique personnalisée.

Utilisation de SQL Server Management Studio

Spécifiez la méthode de propagation dans l’onglet Propriétés de la boîte de dialogue Propriétés de l’article - <Article>, accessible dans New Publication Wizard et dans la boîte de dialogue Propriétés de la publication - <Publication>. Pour plus d’informations sur l’utilisation de l’Assistant et sur l’accès à la boîte de dialogue, consultez Créer une publication et Afficher et modifier les propriétés d’une publication.

Pour spécifier la méthode de propagation

  1. Dans la page Articles de New Publication Wizard ou la boîte de dialogue Propriétés de la publication – <Publication>, sélectionnez une table et cliquez sur Propriétés de l'article.

  2. Sélectionnez Définir les propriétés de l'article de Table en surbrillance.

  3. Dans l’onglet Propriétés de la boîte de dialogue Propriétés de l’article - <Article>, dans la section Remise de la déclaration, spécifiez la méthode de propagation pour chaque opération à l’aide des menus Format de remise INSERT, Format de remise UPDATE et Format de remise DELETE.

  4. Cliquez sur OK.

  5. 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 générer et utiliser des procédures stockées personnalisées

  1. Dans la page Articles de New Publication Wizard ou la boîte de dialogue Propriétés de la publication – <Publication>, sélectionnez une table et cliquez sur Propriétés de l'article.

  2. Sélectionnez Définir les propriétés de l'article de Table en surbrillance.

    Dans l’onglet Propriétés de la boîte de dialogue Propriétés de l’article - <Article>, dans la section Remise d’instruction, sélectionnez la syntaxe CALL dans le menu du format de remise approprié (Format de remise INSERT, Format de remise UPDATE ou Format de remise DELETE), puis tapez le nom de la procédure à utiliser dans Procédure stockée INSERT, Procédure stockée DELETE ou Procédure stockée UPDATE. Pour plus d’informations sur la syntaxe CALL, consultez la section « Syntaxe d’appel des procédures stockées » dans Spécifier le mode de propagation des modifications des articles transactionnels.

  3. Cliquez sur OK.

  4. 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.

  5. Lorsque l'instantané de la publication est généré, il inclut la procédure spécifiée à l'étape précédente. Les procédures utilisent la syntaxe CALL spécifiée, mais incluent également la logique par défaut utilisée par la réplication.

    Une fois l'instantané généré, accédez au dossier d'instantanés 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 du Bloc-notes ou d'un autre éditeur de texte, 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. Si l'instantané est régénéré, vous devez recréer la procédure personnalisée.

Utilisation de Transact-SQL

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.

Remarque

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écifier le 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

  1. Exécutez sp_addarticlesur la base de données de publication du serveur de publication. 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_objectet 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 .

    Remarque

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

    Pour plus d’informations, consultez définir un Article.

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

  1. Exécutez sp_addarticlesur la base de données de publication du serveur de publication. 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_objectet 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 .

    Remarque

    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 définir un Article.

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

  1. Exécutez sp_addarticlesur la base de données de publication du serveur de publication. 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 de CALL sp_MSins_article_name, où article_name est la valeur spécifiée pour @article.

    • @del_cmd - spécifiez la valeur de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, où article_name est la valeur spécifiée pour @article.

    • @upd_cmd - spécifiez la valeur de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, ou MCALL sp_MSupd_article_name, où article_name est la valeur spécifiée pour @article.

    Remarque

    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.

    Remarque

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

    Pour plus d’informations, consultez définir un Article.

  2. Une fois l'instantané généré, accédez au dossier d'instantanés 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écifier le mode de propagation des modifications des articles transactionnels.

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. Exécutez sp_addarticlesur la base de données de publication du serveur de publication. 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 de CALL sp_MSins_article_name, où article_name est la valeur spécifiée pour @article.

    • @del_cmd - spécifiez la valeur de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, où article_name est la valeur spécifiée pour @article.

    • @upd_cmd - spécifiez une valeur de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALL sp_MSupd_article_name, où article_name est la valeur spécifiée pour @article.

    Remarque

    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.

    Remarque

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

    Pour plus d’informations, consultez définir un Article.

  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écifier le mode de propagation des modifications des articles transactionnels.

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

  1. Exécutez sp_changearticledans la base de données de publication du serveur de publication. Spécifiez @publication, @article, la valeur ins_cmd, upd_cmdou 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.