Sintomas
Ao tentar adicionar um campo a uma tabela replicada no Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) ou no Microsoft Dynamics NAV 5.0 SP1, você recebe uma mensagem de erro semelhante à seguinte:
Os seguintes erros ou erros de SQL Server ocorreram ao acessar a tabela Table_Name:
650,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Você só pode especificar o bloqueio READPAST nos níveis de isolamento READ COMMITTED ou REPEATABLE READ READ. SQL: ALTER TABLE "NAVDB"." dbo"." CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
Observação
-
Table_Name é um espaço reservado para o nome real da tabela que você deseja usar para adicionar o campo.
-
Esse problema ocorre em um computador que está executando o Microsoft SQL Server 2008 e que tem o ambiente naV do Microsoft Dynamics instalado. Além disso, esse problema ocorrerá somente se Microsoft SQL Server Replicação estiver habilitada em uma das tabelas de NAV do Microsoft Dynamics.
Causa
Esse problema ocorre porque você não pode alterar o esquema de uma tabela replicada no Microsoft SQL Server 2008 se a transação relevante for definida para usar o nível de isolamento SERIALIZABLE. Essa é uma nova restrição para Microsoft SQL Server 2008 que não existia em versões anteriores do Microsoft SQL Server. No entanto, a configuração padrão do Microsoft Dynamics NAV usa o nível de isolamento SERIALIZABLE para alterar tabelas.
Resolução
Para resolver esse problema, configure o Microsoft Dynamics NAV 5.0 SP1 e o Microsoft Dynamics NAV 2009 SP1 para usar o nível de isolamento DE LEITURA REPETIDO no Microsoft SQL Server em vez do nível de isolamento SERIALIZABLE.
Para obter mais informações sobre como alterar o nível de isolamento usado pelo Microsoft Dynamics NAV, visite os seguintes artigos da Base de Dados de Conhecimento (KB) e os hotfixes associados: