Ошибка проблемы
: "[Microsoft] [драйвер SQL Server ODBC] [SQL Server] Нарушение ограничения ПЕРВИЧНОГО КЛЮЧА PKRM30301 Не удается вставить дубликат ключ в объект RM30301" возникает при запуске удаления платных транзакций в службе управления receivables.
Примечание. Когда вы нажмете ОК в этом диалоговом окне, появится диалоговое окно с информацией "Хранимая процедура удаления платных транзакций возвращает следующие результаты: СУБД:2627, eEnterprise 0".
Потенциальная причина. В таблицах
"Receivables" есть дублирующиеся документы. Как правило, это повторяют номер последовательности.
Разрешение
1. Чтобы найти записи, вызывающие ошибку в RM30301, сделайте следующее: выберите
RMDTYPAL, DOCNUMBR, SEQNUMBR из группы RM10101
RMDTYPAL, DOCNUMBR, SEQNUMBR
having count(*) >
1 2. Используя данные, возвращенные из предыдущего запроса, запустите следующую функцию, чтобы просмотреть данные для определенного номера документа: выберите SEQNUMBR в качестве ФУНКЦИИ СОВПА, * из
RM10101, где DOCNUMBR = 'введите номер документа из шага 1' в соответствии с функцией СОВПАБР
3. Обновим поле SEQNUMBR, чтобы не было дубликата. Используйте клавишу, приведенную ниже. Если у вас есть 2 записи с SEQNUMBR 16384, необходимо изменить одну из них на 32768, если у вас есть 2 записи с 65536, необходимо обновить одну до 81920 и т. д. Каждая строка документа должна иметь собственный уникальный seqnumbr в многих строках 16384.
update RM10101 set SEQNUMBR = XXX where DEX_ROW_ID = XX
SEQNUMBR
-----------
16384
32768
49152
65536 81920 98304 Если первый сценарий не возвращает результаты, попробуйте: выберите * в
RM10101 w, RM30301 h, где
w.RMDTYPAL = h.RMDTYPAL иw.DOCСБЕРЕГАШ = h.DOCСОВПА И
w.SEQNUMBR = h.SEQNUMBR
выберите a.TRXSORCE,a.RMDTYPAL, a.DOC.RM20101 a, RM30301 b, где
a.RMDTYPAL = b.RMDTYPAL иa.DOCСОБСОР = b.DOCСОВРЕДЕЛ В этой статье был TechKnow пронумерованной документ
ID:32359