Příznaky
Při pokusu o přidání pole do replikované tabulky v aplikaci Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) nebo Microsoft Dynamics NAV 5.0 SP1 se zobrazí chybová zpráva podobná následující:
Při přístupu k tabulce Table_Name došlo k následující chybě nebo chybám SQL Serveru:
650,"42000";[Microsoft][OVLADAČ SQL Serveru ODBC][SQL Server]Zámek READPAST můžete zadat jenom na úrovních izolace READCOMMITTED nebo REPEATABLE READ. SQL: ALTER TABLE "NAVDB". dbo"." CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
Poznámky:
-
Table_Name je zástupný symbol pro skutečný název tabulky, kterou chcete použít k přidání pole.
-
K tomuto problému dochází v počítači se systémem Microsoft SQL Server 2008 a s nainstalovaným prostředím Microsoft Dynamics NAV. K tomuto problému navíc dochází jenom v Microsoft SQL Server jedné z tabulek Microsoft Dynamics NAV je povolená replikace.
Příčina
K tomuto problému dochází, protože v aplikaci Microsoft SQL Server 2008 nemůžete změnit schéma replikované tabulky, pokud je příslušná transakce nastavená na použití úrovně izolace SERIALIZABLE. Toto je nové omezení pro Microsoft SQL Server 2008, které v dřívějších verzích Microsoft SQL Server. Výchozí konfigurace aplikace Microsoft Dynamics NAV ale ke změně tabulek používá úroveň izolace SERIALIZOVATELNÉ.
Řešení
Pokud chcete tento problém vyřešit, nakonfigurujte Microsoft Dynamics NAV 5.0 SP1 a Microsoft Dynamics NAV 2009 SP1 tak, aby místo úrovně izolace SERIALIZABLE místo úrovně izolace SERIALIZABLE v systému Microsoft SQL Server používejte úroveň izolace OPAKOVATELNÉ ČTENÍ.
Další informace o tom, jak změnit úroveň izolace, kterou microsoft Dynamics NAV používá, najdete v následujících článcích znalostní báze Knowledge Base (KB) a souvisejících oprav hotfix: