Hello,
Encore un problème de REPLICATION!
Contexte:
- SQL SERVER 2005 SP3
- WINDOWS 2003 SP2
- Replication transactionnelle entre 2 BASES [B1(base de publication) et B2(base abonnée)] :
Pour simplifier on va juste prendre en compte la table DROIT
PROBLEME
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TABLE [dbo].[DROIT]( [ID_DROIT] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [PROFIL] [varchar](20) NULL, ....
1) Impossible de faire une insertion dans la table depuis B2
INSERT INTO DROIT... même après SUPPRESSION DE LA REPLICATION
Erreur renvoyée2)Msg 2627, Level 14, State 1, Line 1
Violation de la contrainte PRIMARY KEY 'PK_DROIT'. Impossible d'insérer une clé en double dans l'objet 'dbo.DROIT'.
L'instruction a été arrêtée.
* Par contre un UPDATE sur la table DROIT de B2 met à jour la table dans B1
* Un DELETE sur la table DROIT de B2 n'a pas d'effet sur la table dans B1
Je sais que la réplication transactionnelle avec abonnements permet à l'abonné de mettre à jour les données du serveur de publication. Mais vu que ce type de réplication va entrainer des modifications :
- sur le modèle de données existant,
- au niveau des requêtes INSERT INTO
- ....
Il y a-t-il une autre méthode pour me permettre de faire des INSERT dans la table DROIT depuis la base B2 ?
Les tentatives avec SELECT @@IDENTITY pour récupérer la clé IDENTITY ne n'ont rien donné de bon ...
Quelqu'un a-t-il une idée ?
Merci d'avance :-)
A+
Etienne ZINZINDOHOUE
Partager