Probleemfout: '[Microsoft] [ODBC SQL Server Driver] [SQL Server] Schending van primaire sleutelbeperking PKRM30301 Kan geen dubbele sleutel invoegen in object RM30301' treedt op bij het uitvoeren van Betaalde transactieverwijdering in Beheer van vorderingen.
Opmerking: wanneer u in dit dialoogvenster op OK gaat, wordt er een informatiedialoogvenster weergegeven met de tekst 'De opgeslagen procedure in Het verwijderen van betaalde transacties heeft de volgende resultaten opgeleverd: DBMS:2627, eEnterprise 0'.
Mogelijke oorzaak
Er is een duplicaatdocument ergens in de tabellen Vorderingen. Meestal is het een dubbelvolgordenummer.
Resolutie
1. Voer het volgende uit in de database Bedrijf om de records te vinden die de fout veroorzaken in de RM30301: selecteer
RMDTYPAL, DOCNUMBR, SEQNUMBR uit RM10101-groep door
RMDTYPAL, DOCNUMBR, SEQNUMBR
met aantal(*) > 1
2. Voer met de gegevens die zijn geretourneerd uit de vorige query het volgende uit om gegevens voor een specifiek documentnummer weer te geven: selecteer
SEQNUMBR als GEVOELLOZER, * van RM10101, waarbij DOCNUMBR = 'het documentnummer van stap 1' instelt bij
3. Werk het veld SEQNUMBR bij, zodat er geen duplicaat is. Gebruik de onderstaande sleutel. Als u twee records met een SEQNUMBR van 16384 hebt, moet u een van deze records wijzigen in 32768, als u 2 records met 65536 hebt, moet u er een bijwerken naar 81920, enzovoort. Elke regel van een document moet een eigen unieke seqnumbr hebben in veelvouden van 16384.
update RM10101 set SEQNUMBR = XXX where DEX_ROW_ID = XX
SEQNUMBR
-----------
16384
32768
49152
65536
81920 98304 Als het eerste script geen resultaten oplevert, probeer dan deze: selecteer * van
RM10101 w, RM30301 h waar
w.RMDTYPAL = h.RMDTYPAL en
w.DOCNUMBR = h.DOCNUMBR en
w.SEQNUMBR = h.SEQNUMBR
een.TRXSORCE,a.RMDTYPAL selecteert,a.DOCNUMBR from RM20101 a, RM30301 b where
a.RMDTYPAL = b.RMDTYPAL and
a.DOCNUMBR = b.DOCNUMBR Dit artikel was
TechKnowledge Document ID:32359