現象
Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) または Microsoft Dynamics NAV 5.0 SP1 でレプリケート テーブルにフィールドを追加しようとすると、次のようなエラー メッセージが表示されます。
Table_Name テーブルにアクセスするときに次のSQL Serverエラーまたはエラーが発生しました:
650,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]READ COMMITTED または REPEATABLE READ 分離レベルでのみ READPAST ロックを指定できます。 SQL: ALTER TABLE "NAVDB"。dbo"."CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
注意事項
-
Table_Name フィールドの追加に使用するテーブルの実際の名前のプレースホルダーです。
-
この問題は、Microsoft Dynamics NAV 環境がインストールMicrosoft SQL Server 2008 年 1 月に実行されているコンピューターで発生します。 さらに、この問題は、Microsoft Dynamics NAV Microsoft SQL Server レプリケーションで有効になっている場合にのみ発生します。
原因
この問題は、関連するトランザクションが SERIALIZABLE 分離レベルを使用するために設定されている場合、Microsoft SQL Server 2008 でレプリケート テーブルのスキーマを変更できないことが理由で発生します。 これは、以前のバージョンの Microsoft SQL Server に存在しなかった 2008 年の新しい制約Microsoft SQL Server。 ただし、Microsoft Dynamics NAV の既定の構成では、SERIALIZABLE 分離レベルを使用してテーブルを変更します。
解決策
この問題を解決するには、Microsoft Dynamics NAV 5.0 SP1 と Microsoft Dynamics NAV 2009 SP1 を構成し、SERIALIZABLE 分離レベルではなく Microsoft SQL Server で反復可能な読み取り分離レベルを使用します。
Microsoft Dynamics NAV で使用される分離レベルを変更する方法の詳細については、次のサポート技術情報 (KB) の記事と関連する修正プログラムを参照してください。