Lỗi Sự cố
- "[Microsoft] [ODBC SQL Server Driver] [SQL Server] Vi phạm ràng buộc PRIMARY KEY PKRM30301 Không thể Chèn khóa trùng lặp trong đối tượng RM30301" xảy ra khi chạy Loại bỏ Giao dịch Phải trả tiền trong Quản lý Khoản phải thu.
Lưu ý - Khi bạn nhấn OK trên hộp thoại này, một hộp thoại thông tin sẽ xuất hiện với câu lệnh "Thủ tục lưu trữ trong loại bỏ giao dịch thanh toán đã trả về kết quả sau: DBMS:2627, eEnterprise 0".
Nguyên nhân
Tiềm ẩn Có một tài liệu trùng lặp ở một nơi trong bảng Khoản phải thu. Thông thường, đó là số thứ tự trùng lặp.
Độ
phân giải 1. Chạy công cụ sau đối với cơ sở dữ liệu Công ty để tìm các bản ghi đang gây ra lỗi trên RM30301: chọn
RMDTYPAL, DOCNUMBR, SEQNUMBR từ nhóm RM10101 bằng
RMDTYPAL, DOCNUMBR, SEQNUMBR
có count(*) > 1
2. Dùng thông tin được trả về từ truy vấn trước, hãy chạy lệnh sau để xem dữ liệu cho Số Tài liệu cụ thể: chọn
SEQNUMBR dưới dạng NUMBR, * từ RM10101 trong đó DOCNUMBR = 'nhập Số Tài liệu từ bước 1' theo thứ tự NUMBR
3. Cập nhật trường SEQNUMBR để không bị trùng lặp. Sử dụng khóa được cung cấp bên dưới. Nếu bạn có 2 bản ghi với SEQNUMBR của 16384, bạn cần thay đổi một trong số chúng thành 32768, nếu bạn có 2 bản ghi với 65536 bạn cần cập nhật một bản ghi lên 81920, v.v.. Mỗi dòng của một tài liệu cần có dấu tách riêng của nó trong bội số của 16384.
cập nhật RM10101 đặt SEQNUMBR = XXX trong đó DEX_ROW_ID = XX
SEQNUMBR
-----------
16384
32768 49152 65536 81920 98304 Nếu tập lệnh đầu tiên không trả về kết quả, hãy thử những mục sau: chọn * từ
RM10101 w, RM30301 h trong đó
w.RMDTYPAL = h.RMDTYPAL và
w.DOCNUMBR = h.DOCNUMBR và
w.SEQNUMBR = h.SEQNUMBR chọn
a.TRXSORCE,a.RMDTYPAL,a.DOCNUMBR từ RM20101 a, RM30301 b trong đó
a.RMDTYPAL = b.RMDTYPAL vàa.DOCNUMBR = b.DOCNUMBR Bài viết này là
TechKnowledge Document ID:32359