Sintomi
Quando si prova ad aggiungere un campo a una tabella replicata in Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) o in Microsoft Dynamics NAV 5.0 SP1, viene visualizzato un messaggio di errore analogo al seguente:
L'errore o gli errori di SQL Server seguenti si sono verificati durante l'accesso alla tabella Table_Name:
650,"42000",[Microsoft][Odbc SQL Server Driver][SQL Server]È possibile specificare solo il blocco READPAST nei livelli di isolamento 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 ''
Note
-
Table_Name è un segnaposto per il nome effettivo della tabella da usare per aggiungere il campo.
-
Questo problema si verifica in un computer che esegue Microsoft SQL Server 2008 e in cui è installato l'ambiente Microsoft Dynamics NAV. Inoltre, questo problema si verifica solo se replica di Microsoft SQL Server è abilitato in una delle tabelle di Microsoft Dynamics NAV.
Causa
Questo problema si verifica perché non è possibile modificare lo schema di una tabella replicata in Microsoft SQL Server 2008 se la transazione pertinente è impostata per l'uso del livello di isolamento SERIALIZABLE. Si tratta di un nuovo vincolo Microsoft SQL Server 2008 che non esisteva nelle versioni precedenti di Microsoft SQL Server. Tuttavia, la configurazione predefinita di Microsoft Dynamics NAV usa il livello di isolamento SERIALIZABLE per modificare le tabelle.
Risoluzione
Per risolvere il problema, configurare Microsoft Dynamics NAV 5.0 SP1 e Microsoft Dynamics NAV 2009 SP1 in modo da usare il livello di isolamento REPEATABLE READ in Microsoft SQL Server invece del livello di isolamento SERIALIZABLE.
Per altre informazioni su come modificare il livello di isolamento usato da Microsoft Dynamics NAV, visitare i seguenti articoli della Knowledge Base (KB) e gli aggiornamenti rapidi associati: