Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Par défaut, la réplication transactionnelle applique toutes les modifications de données aux abonnés via des procédures stockées, générées par des procédures internes pour chaque article de table dans la publication. Les trois procédures (une pour les insertions, les mises à jour et les suppressions) sont copiées sur l’Abonné et s’exécutent lorsqu’une insertion, une mise à jour ou une suppression est répliquée sur l’Abonné. Lorsqu’une modification de schéma est apportée à une table sur un serveur de publication SQL Server, la réplication régénère automatiquement ces procédures en appelant le même ensemble de procédures de script internes afin que les nouvelles procédures correspondent au nouveau schéma (la réplication des modifications de schéma n’est pas prise en charge pour les serveurs de publication Oracle).
Il est également possible de spécifier des procédures personnalisées pour remplacer une ou plusieurs des procédures par défaut. Les procédures personnalisées doivent être modifiées si la modification du schéma affecte la procédure. Par exemple, si une procédure référence une colonne qui est supprimée dans une modification de schéma, les références à la colonne doivent être supprimées de la procédure. Il y a deux façons pour la réplication de propager une nouvelle procédure personnalisée vers les Abonnés :
La première option consiste à utiliser une procédure de script personnalisée pour remplacer les valeurs par défaut utilisées par la réplication :
Lors de l’exécution de sp_addarticle (Transact-SQL),vérifiez que le bit @schema_option 0x02 est vrai.
Exécutez sp_register_custom_scripting (Transact-SQL) et spécifiez la valeur « insert », « update » ou « delete » pour le paramètre @type et le nom de la procédure de script personnalisée pour le paramètre @value.
La prochaine fois qu'une modification de schéma est effectuée, la réplication appelle cette procédure stockée pour générer le script de la définition de la nouvelle procédure stockée personnalisée définie par l'utilisateur, puis propage la procédure à chaque Abonné.
La deuxième option consiste à utiliser un script qui contient une nouvelle définition de procédure personnalisée :
Lors de l’exécution de sp_addarticle (Transact-SQL),définissez le @schema_option 0x02 bit sur false afin que la réplication ne génère pas automatiquement de procédures personnalisées sur l’Abonné.
Avant chaque modification de schéma, créez un fichier de script et inscrivez le script avec la réplication en exécutant sp_register_custom_scripting (Transact-SQL). Spécifiez la valeur « custom_script » pour le paramètre @type et le chemin d’accès au script sur le serveur de publication pour le paramètre @value.
La prochaine fois qu'une modification de schéma pertinente est effectuée, ce script s'exécutera sur chaque Abonné au sein de la même transaction que la commande DDL. Quand la modification de schéma est effectuée, le script est désinscrit. Vous devez réinscrire le script pour qu’il soit exécuté après une modification de schéma ultérieure.
Voir aussi
Spécifier la façon dont les modifications sont propagées pour les articles transactionnels
Apporter des modifications de schéma sur les bases de données de publication