2010-10-05 7 views
1

J'ai un ensemble de réplication transactionnel pouvant être mis à jour avec SQL Server 2008. Tout fonctionne correctement. J'ai ajouté une nouvelle table à la publication existante via sp_addarticle suivie de sp_addsubscription. Après cela, j'ai couru l'agent instantané. L'instantané a été généré uniquement pour la table nouvellement ajoutée. Ainsi, la nouvelle table a été répliquée avec succès sur l'abonné. Je pourrais même pouvoir reproduire un enregistrement nouvellement inséré dans la nouvelle table à l'abonné. Mais vice versa n'est pas possible. Lorsque j'insère un enregistrement dans une nouvelle table dans la base de données d'abonnés, je reçois une erreurAjout d'un nouvel article à la réplication transactionnelle provoque une erreur à l'abonné

*Msg 515 'Cannot insert the value NULL into column 'msrepl_tran_version', 
table Servername.dbo.Tablename'; column does not allow nulls. INSERT fails.'*. 

S'il vous plaît aidez-moi à résoudre ce problème.

Merci d'avance. Geeta

Répondre

0

Est-ce une erreur reproductible? L'abonné est-il configuré en tant que mise à jour immédiate? Dans le cas d'abonné Mise à jour immédiate, la transaction échoue lorsque l'éditeur (ou le réseau) est indisponible.

Vérifiez et le changement, si elle ne l'a pas, votre table afin que ms_repl_tran_version fait défaut GUID.

ALTER TABLE [dbo] [TableName] AJOUTER CONTRAINTE [DFLT_GUID_msrepl] DEFAULT (newid() Pour [msrepl_tran_version]

+0

Il est reproductible comme j'ai défini dans l'environnement de test et l'abonné est configuré comme mise à jour immédiate. –

+0

Merci pour la solution. Cela fonctionne bien pour insérer un enregistrement dans la base de données d'abonné. Toutefois, l'enregistrement inséré n'est pas répliqué dans la base de données de l'éditeur. –

Questions connexes