Problemfejl
– "[Microsoft] [ODBC SQL Server-driver] [SQL Server] Overtrædelse af BEGRÆNSNINGEN PRIMÆR NØGLE PKRM30301 Kan ikke indsætte dubletnøgle i objekt RM30301" forekommer, når du kører Fjernelse af betalt transaktion i Administration af modtagelige elementer.
Bemærk! Når du trykker på OK i denne dialogboks, vises en oplysningsdialogboks med teksten "Den lagrede procedure i Fjernelse af betalt transaktion returnerede følgende resultater: DBMS:2627, eEnterprise 0."
Mulig årsag
Der er et duplikeret dokument et sted i tabellerne over modtagelsestabeller. Det er typisk et duplikeret sekvensnummer.
Løsning
1. Kør følgende mod databasen Company for at finde de poster, der forårsager fejlen i RM30301: vælg
RMDTYPAL, DOCNUMBR, SEQNUMBR fra gruppen RM10101 af
RMDTYPAL, DOCNUMBR, SEQNUMBR, der har
antal(*) > 1
2. Med brug af de oplysninger, der returneres fra den forrige forespørgsel, skal du køre følgende for at få vist data for et bestemt dokumentnummer: Vælg
SEQNUMBR som NUMBR, * fra RM10101, hvor DOCNUMBR = 'angiv dokumentnummeret fra trin 1' i rækkefølge med NUMBR
3. Opdater SEQNUMBR-feltet, så der ikke er en dublet. Brug nøglen nedenfor. Hvis du har to poster med EN SEQNUMBR på 16384, skal du ændre en af dem til 32768, hvis du har 2 poster med 65536, du skal opdatere én til 81920 osv. Hver linje i et dokument skal have sin egen entydige seqnumbr i multiplum af 16384.
update RM10101 set SEQNUMBR = XXX where DEX_ROW_ID = XX
SEQNUMBR
-----------
16384
32768
49152
65536 81920 98304 Hvis det første script ikke returnerer resultater, kan du prøve disse: vælg * fra
RM10101 w, RM30301 h, hvor
w.RMDTYPAL = h.RMDTYPAL og
w.DOCNUMBR = h.DOCNUMBR
and w.SEQNUMBR = h.SEQNUMBR select
a.TRXSORCE,a.RMDTYPAL,, a.DOCNUMBR fra RM20101 a, RM30301 b, hvor
a.RMDTYPAL = b.RMDTYPAL oga.DOCNUMBR = b.DOCNUMBR Denne artikel var
TechKendt dokument-id:32359