Symptômes
Lorsque vous essayez d’ajouter un champ à une table répliquée dans Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) ou Microsoft Dynamics NAV 5.0 SP1, vous recevez un message d’erreur semblable au suivant :
Le ou les erreurs SQL Server suivantes se sont produites lors de l’accès à la table Table_Name :
650,"42000 »,[Microsoft][Pilote ODBC SQL Server][SQL Server]Vous pouvez seulement spécifier le verrouillage READPAST dans les niveaux d’isolation READ COMMITTED ou REPEATABLE READ. SQL : ALTER TABLE « NAVDB ». dbo " ». CRONUS International Ltd_$MyTable » ADD « field4 » VARCHAR(10) NOT NULL CONSTRAINT « $ndodefault$625437302$4 » DEFAULT ''
Remarques
-
Table_Name est un espace réservé pour le nom réel de la table que vous voulez utiliser pour ajouter le champ.
-
Ce problème se produit sur un ordinateur exécutant Microsoft SQL Server 2008 et sur l’environnement Microsoft Dynamics NAV installé. De plus, ce problème se produit uniquement si Réplication Microsoft SQL Server est activé dans l’un des tableaux Microsoft Dynamics NAV.
Cause
Ce problème se produit car vous ne pouvez pas modifier le schéma d’une table répliquée dans Microsoft SQL Server 2008 si la transaction pertinente est définie pour utiliser le niveau d’isolation SERIALIZABLE. Il s’agit d’une nouvelle contrainte Microsoft SQL Server 2008 qui n’existait pas dans les versions antérieures de Microsoft SQL Server. Toutefois, la configuration par défaut de Microsoft Dynamics NAV utilise le niveau d’isolation SERIALIZABLE pour modifier les tables.
Résolution
Pour résoudre ce problème, configurez Microsoft Dynamics NAV 5.0 SP1 et Microsoft Dynamics NAV 2009 SP1 de façon à utiliser le niveau d’isolation EN LECTURE exerible dans Microsoft SQL Server au lieu du niveau d’isolation SERIALIZABLE.
Pour plus d’informations sur la modification du niveau d’isolation utilisé par Microsoft Dynamics NAV, consultez les articles de la Base de connaissances et les correctifs logiciels associés :