Ознаки
Під час спроби додати поле до реплікованої таблиці в Microsoft Dynamics NAV 2009 із пакетом оновлень 1 (SP1) або Microsoft Dynamics NAV 5.0 із пакетом оновлень 1 (SP1) з'являється повідомлення про помилку на вбудовування такого змісту:
Під час отримання доступу до Table_Name таблиці SQL Server сталася помилка SQL Server:
650;"42000";[Драйвер ODBC SQL Server][SQL Server]Ви можете вказати блокування READPAST лише в рівнях ізоляції READ COMMITTED або REPEATABLE READ. SQL: ALTER TABLE "NAVDB". dbo"." CRONUS International Ltd_$MyTable" ADD "поле4" 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 із пакетом оновлень 1 (SP1) і Microsoft Dynamics NAV 2009 із пакетом оновлень 1 (SP1) на використання рівня ізоляції REPEATABLE READ Microsoft SQL Server замість рівня ізоляції SERIALIZABLE.
Щоб отримати додаткові відомості про те, як змінити рівень ізоляції, який використовується в Microsoft Dynamics NAV, відвідайте такі статті бази знань (KB) і пов'язані виправлення: