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 :
- À l'aide des options du schéma de réplication. Pour plus d'informations, consultez Procédure : spécifier des options de schéma (SQL Server Management Studio) et How to: Specify Schema Options (Replication Transact-SQL Programming).
- Directement dans la syntaxe Transact-SQL ou dans Microsoft SQL Server Management Studio dans les circonstances suivantes :
- Création ou modification d'un objet dans la base de données de publication.
- Création ou modification d'un objet dans la base de données d'abonnement. En règle générale, les objets sont créés manuellement et non par réplication uniquement si un abonnement est initialisé sans une capture instantanée.
Pour plus d'informations, consultez : - CREATE TABLE (Transact-SQL), ALTER TABLE (Transact-SQL),CREATE TRIGGER (Transact-SQL) etALTER TRIGGER (Transact-SQL)
- Procédure : désactiver des contraintes de clé étrangère pour la réplication (Visual Database Tools)
- Procédure : désactiver des contraintes de validation pour la réplication (Visual Database Tools)
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 |
|