[Je me suis arraché les cheveux sur un pb de réplication. Ayant trouvé la solution, mais ne sachant pas où partager les "trucs et astuces", je poste ici.]

Si vous voulez déporter une logique métier sur un serveur abonné à une réplication transactionelle, ce point vous concerne.

Dans une réplication transactionnelle sur un SQL 2000, un UPDATE sur l'éditeur est transformé en une paire DELETE/INSERT sur l'abonné si l'UPDATE implique une colonne faisant partie d'un index unique. C'est un "update différé". Une page MS qui explique ce point :
http://support.microsoft.com/default...b;en-us;238254

Plusieurs options possibles pour modifier ce comportement :
- modifier la manière dont les mises à jour sont effectuées,
- modifier les index uniques : il est possible de conserver l'index, mais il ne faut pas qu'il soit unique,
- remplacer la procédure stockée par défaut sp_MSupd_* par une proc stoc personnalisée,
- modifier le paramétrage du serveur pour avoir un UPDATE des deux côtés de la réplication (ne fonctionne qu'à partir du SP1 et uniquement sur les UPDATE singleton : 1 colonne, 1 ligne) : http://support.microsoft.com/kb/302341/EN-US/

C'est un point dont il faut se souvenir quand on déporte une logique de traitement sur un serveur abonné.