Triệu chứng
Khi bạn tìm cách thêm trường vào bảng được sao chép trong Microsoft Dynamics NAV 2009 Gói Dịch vụ 1 (SP1) hoặc trong Microsoft Dynamics NAV 5.0 SP1, bạn nhận được thông báo lỗi tương tự như sau:
Lỗi hoặc lỗi SQL Server sau đây xảy ra khi truy nhập bảng Table_Name:
650,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Bạn chỉ có thể chỉ định khóa READPAST ở mức cách ly ĐỌC CAM KẾT hoặc LẶP LẠI ĐƯỢC. SQL: ALTER TABLE "NAVDB"." dbo"." CRONUS International Ltd_$MyTable" ADD "field4" VARCHAR(10) NOT NULL CONSTRAINT "$ndodefault$625437302$4" DEFAULT ''
Lưu ý́
-
Table_Name là chỗ dành sẵn cho tên thực tế của bảng mà bạn muốn sử dụng để thêm trường.
-
Sự cố này xảy ra trên máy tính chạy Microsoft SQL Server 2008 và đã cài đặt môi trường Microsoft Dynamics NAV. Ngoài ra, sự cố này chỉ xảy ra khi Sao nhân bản Microsoft SQL Server được bật ở một trong các bảng Microsoft Dynamics NAV.
Nguyên nhân
Sự cố này xảy ra vì bạn không thể thay đổi sơ đồ của bảng được tái tạo trong Microsoft SQL Server 2008 nếu giao dịch liên quan được đặt để sử dụng mức cách ly SERIALIZABLE. Đây là một ràng buộc mới cho Microsoft SQL Server 2008 không tồn tại trong các phiên bản trước của Microsoft SQL Server. Tuy nhiên, cấu hình mặc định của Microsoft Dynamics NAV sử dụng mức cách ly SERIALIZABLE để thay đổi bảng.
Giải pháp
Để giải quyết sự cố này, hãy đặt cấu hình Microsoft Dynamics NAV 5.0 SP1 và Microsoft Dynamics NAV 2009 SP1 để sử dụng mức độc lập READ CÓ THỂ LẶP LẠI trong Microsoft SQL Server thay vì mức cách ly SERIALIZABLE.
Để biết thêm thông tin về cách thay đổi mức cách ly mà Microsoft Dynamics NAV sử dụng, hãy truy cập bài viết Cơ sở Tri thức (KB) sau đây và các hotfix liên kết: