Síntomas
Cuando intenta agregar un campo a una tabla replicada en Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) o en Microsoft Dynamics NAV 5.0 SP1, recibe un mensaje de error similar al siguiente:
Al obtener acceso SQL Server la tabla Table_Name se produjeron los siguientes errores o errores de SQL Server:
650,"42000",[Microsoft][Controlador odbc SQL Server][SQL Server]Solo puede especificar el bloqueo READPAST en los niveles de aislamiento READ COMMITTED o REPEATABLE READ. SQL: ALTER TABLE "NAVDB". dbo"." CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
Notas:
-
Table_Name es un marcador de posición para el nombre real de la tabla que desea usar para agregar el campo.
-
Este problema se produce en un equipo que se ejecuta Microsoft SQL Server 2008 y que tiene instalado el entorno nav de Microsoft Dynamics. Además, este problema solo se produce si Microsoft SQL Server replicación está habilitada en una de las tablas nav de Microsoft Dynamics.
Causa
Este problema se produce porque no se puede cambiar el esquema de una tabla replicada en Microsoft SQL Server 2008 si la transacción relevante está establecida para usar el nivel de aislamiento SERIALIZABLE. Esta es una nueva restricción para Microsoft SQL Server 2008 que no existía en versiones anteriores de Microsoft SQL Server. Sin embargo, la configuración predeterminada de Microsoft Dynamics NAV usa el nivel de aislamiento SERIALIZABLE para cambiar las tablas.
Resolución
Para resolver este problema, configure Microsoft Dynamics NAV 5.0 SP1 y Microsoft Dynamics NAV 2009 SP1 para usar el nivel de aislamiento LECTURA REPETIBLE en Microsoft SQL Server en lugar del nivel de aislamiento SERIALIZABLE.
Para obtener más información sobre cómo cambiar el nivel de aislamiento que usa Microsoft Dynamics NAV, visite los siguientes artículos de Knowledge Base (KB) y las revisiones asociadas: