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
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,
        ....
PROBLEME
1) Impossible de faire une insertion dans la table depuis B2
INSERT INTO DROIT... même après SUPPRESSION DE LA REPLICATION
Erreur renvoyée
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
.
2)
* 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