Симптоми
Когато се опитате да добавите поле към дублирана таблица в Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) или в Microsoft Dynamics NAV 5.0 SP1, получавате съобщение за грешка, подобно на следното:
Възникна следната грешка или грешки на SQL Server при достъп до таблицата на Table_Name:
650,"42000";[Microsoft][ODBC SQL Server Driver][SQL Server]Можете само да зададете заключване READPAST в нивата на изолиране READ COMMITTED или REPEATABLE READ. SQL: ALTER TABLE "NAVDB"." dbo"." CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
Забележки
-
Table_Name е контейнер за действителното име на таблицата, която искате да използвате, за да добавите полето.
-
Този проблем възниква на компютър, на който се изпълнява Microsoft SQL Server 2008 и който има инсталирана среда на Microsoft Dynamics NAV. Освен това този проблем възниква само ако репликацията на Microsoft SQL Server е разрешена в една от таблиците на Microsoft Dynamics NAV.
Причина
Този проблем възниква, защото не можете да промените схемата на реплицирана таблица в Microsoft SQL Server 2008, ако съответната транзакция е зададена да използва ниво на изолиране SERIALIZABLE. Това е ново ограничение за Microsoft SQL Server 2008, което не е съществувало в по-стари версии на Microsoft SQL Server. Конфигурацията по подразбиране на Microsoft Dynamics NAV обаче използва ниво на изолиране SERIALIZABLE, за да промени таблиците.
Решение
За да разрешите този проблем, конфигурирайте Microsoft Dynamics NAV 5.0 SP1 и Microsoft Dynamics NAV 2009 SP1, за да използвате ниво на изолиране "ПОВТОРНО ЧЕТЕНЕ" в Microsoft SQL Server вместо ниво на изолиране SERIALIZABLE.
За повече информация как да промените нивото на изолиране, което се използва от Microsoft Dynamics NAV, посетете следните статии от базата знания (KB) и свързаните с тях актуални корекции: