A propos de la table, j'ai ressorti le script de création de la table, avec les contraintes liées à la réplication :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| USE [MA_BASE]
GO
/****** Objet : Table [dbo].[MDS_PRODUIT] Date de génération du script : 01/11/2008 17:22:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MDS_PRODUIT](
[PRO_ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
...
[rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [MSmerge_df_rowguid_6B4DD734279440D2BB194255D4939A87] DEFAULT (newsequentialid()),
CONSTRAINT [PK_MDS_PRODUIT] PRIMARY KEY NONCLUSTERED
(
[PRO_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MDS_PRODUIT] WITH CHECK ADD CONSTRAINT [FK_MDS_PROD_FK_PRODUI_MDS_FORM] FOREIGN KEY([PRO_FOR_ID])
REFERENCES [dbo].[MDS_FORME] ([FOR_ID])
GO
ALTER TABLE [dbo].[MDS_PRODUIT] CHECK CONSTRAINT [FK_MDS_PROD_FK_PRODUI_MDS_FORM]
GO
ALTER TABLE [dbo].[MDS_PRODUIT] WITH NOCHECK ADD CONSTRAINT [repl_identity_range_48FE83D1_1ECC_4DB7_8F62_80977C4323DE] CHECK NOT FOR REPLICATION (([PRO_ID]>(45171) AND [PRO_ID]<=(46171) OR [PRO_ID]>(46171) AND [PRO_ID]<=(47171)))
GO
ALTER TABLE [dbo].[MDS_PRODUIT] CHECK CONSTRAINT [repl_identity_range_48FE83D1_1ECC_4DB7_8F62_80977C4323DE] |
Voici les requêtes de mise à jour :
- j'ai lancé un premier script composé d'environ 13000 lignes, où chaque ligne était du type:
UPDATE PRODUIT SET COLONNE1 = 'texte' WHERE PRO_ID = XXX
Suite à cette première modif, la réplication s'est bien déroulée, sans erreur.
- ensuite j'ai lancé un 2ème script du même genre, d'environ 11000 lignes, mais qui mettait à jour une autre colonne :
UPDATE PRODUIT SET COLONNE2 = 'texte' WHERE PRO_ID = XXX
Ensuite j'ai importé mes nouvelles données dans une table 'tampon' (non répliquée), et j'ai lancé une requete d'insertion à partir de cette table tampon :
1 2 3
| INSERT INTO PRODUIT [liste des champs] SELECT [liste des champs]
FROM table_tampon
WHERE PRO_ID not in (SELECT DISTINCT PRO_ID FROM PRODUIT) |
Résultat : environ 1300 lignes insérées.
Suite à cette deuxième série de modifs, lors de la réplication j'ai rencontré la première erreur "Les informations de version du schéma de l'Abonné sont incohérentes ..." (voir ci dessus).
Donc j'ai suivi les indications du message d'erreur (Agent de capture instantané relancé, et abonnements réinitialisés).
Lors de la réplication suivante, dans le moniteur de réplication, la réplication était en erreur avec le message '25001' (voir image jointe)
Le message d'erreur contient un lien vers une aide Microsoft, mais malheureusement ce lien n'est pas très utile...
http://www.microsoft.com/products/ee...er&EvtID=25001
Voilà... en espérant que cela vous donne plus d'informations!
Partager