Contrôle des contraintes, des identités et des déclencheurs avec l'option NOT FOR REPLICATION

Mis à jour : 15 septembre 2007

Dans une topologie de réplication, il est parfois souhaitable de traiter différemment l'activité des utilisateurs et l'activité des Agents. Si, par exemple, une ligne est insérée par un utilisateur sur le serveur de publication et que cette insertion est conforme à la contrainte de validation définie sur la table, il n'est pas toujours nécessaire d'appliquer la même contrainte lors de l'insertion de la ligne par un Agent de réplication sur l'Abonné. L'option NOT FOR REPLICATION permet de spécifier un traitement différent pour les objets de base de données suivants lorsqu'un Agent de réplication effectue une opération :

  • Contraintes de clés étrangères
    La contrainte de clé étrangère n'est pas appliquée lorsqu'un Agent de réplication effectue une opération d'insertion (insert), de mise à jour (update) ou de suppression (delete).
  • Contraintes de validation
    La contrainte de validation n'est pas appliquée lorsqu'un Agent de réplication effectue une opération d'insertion (insert), de mise à jour (update) ou de suppression (delete).
  • Colonnes d'identité
    La valeur de colonne d'identité n'est pas incrémentée lorsqu'un Agent de réplication effectue une opération d'insertion (insert).
  • Déclencheurs
    Le déclencheur n'est pas exécuté lorsqu'un Agent de réplication effectue une opération d'insertion (insert), de mise à jour (update) ou de suppression (delete).

Lorsqu'une table est publiée, les options de schéma contrôlent la création des objets dans la base de données d'abonnement. Les options de schéma par défaut diffèrent selon la publication, lorsque les options sont définies pour spécifier que les contraintes FOREIGN KEY et CHECK sont créées dans la base de données d'abonnement, l'option NOT FOR REPLICATION est activée. Cette option NOT FOR REPLICATION est également définie lors de la réplication de colonnes d'identité dans les publications transactionnelles et de fusion qui prennent en charge les abonnements pouvant être mis à jour. Pour plus d'informations sur la réplication des colonnes d'identité, consultez Réplication de colonnes d'identité.

Dans la plupart des cas, les paramètres par défaut conviennent parfaitement mais ils peuvent être modifiés si une application exige un comportement différent. L'élément principal à prendre en considération est le déclencheur. Si, par exemple, vous définissez un déclencheur d'insertion avec l'option NOT FOR REPLICATION définie, toutes les insertions utilisateur activent le déclencheur, ce qui n'est pas le cas des insertions des Agents de réplication. Prenons l'exemple d'un déclencheur qui insère des données dans une table de suivi : lorsque l'utilisateur insère la ligne au départ, il est normal que le déclencheur s'active et entre une ligne dans la table de suivi mais il ne doit pas s'activer lorsque ces données sont répliquées sur l'Abonné car cela se traduit par l'ajout d'une ligne inutile dans la table de suivi.

Pour spécifier l'option NOT FOR REPLICATION

L'option NOT FOR REPLICATION peut être spécifiée de plusieurs façons :

Voir aussi

Concepts

Considérations communes à tous les types de réplication

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Contenu modifié :
  • Clarification apportée pour préciser dans quel cas l'option NOT FOR REPLICATION est activée.