Napaka o težavi –
»[Microsoft] [Gonilnik ODBC SQL Server] [SQL Server] Kršitve omejitve PRIMARY KEY PKRM30301 Ni mogoče vstaviti podvojenega ključa v predmet RM30301« se pojavi, če zaženete odstranjevanje plačljive transakcije med upravljanjem
kupcev.
Opomba – ko v tem pogovornem oknu pritisnite V redu, se prikaže pogovorno okno z informacijami o »The stored procedure in Paid Transaction Removal returned the following results: DBMS:2627, eEnterprise 0« (Shranjena procedura v možnosti »Odstranjevanje plačljive transakcije«): DBMS:2627, eEnterprise 0.«
Morebitni vzrok
V tabelah »Ob terjatvami« je podvojen dokument. Po navadi gre za podvojeno zaporedno številko.
1. rešitev. Zaženite to v zbirki podatkov podjetja, da poiščite zapise, ki povzročajo napako v RM30301:
izberite RMDTYPAL, DOCNUMBR, SEQNUMBR iz skupine RM10101
po RMDTYPAL, DOCNUMBR, SEQNUMBR
having count(*) > 1
2. Če uporabite informacije, ki ste jih vrnili iz prejšnje poizvedbe, zaženite to, da si ogledate podatke za določeno številko dokumenta: izberite
SEQNUMBR kot NUMBR, * iz RM10101, kjer DOCNUMBR = 'vnesite številko dokumenta iz naročila 1. koraka s
3. korakom. Posodobite polje SEQNUMBR, tako da ne bo dvojnika. Uporabite ključ, ki je prikazan spodaj. Če imate 2 zapisa s seQNUMBR števila 16384, morate enega od njih spremeniti v 32768, če imate 2 zapisa s 65536, morate posodobiti enega na 81920 itd. Vsaka vrstica dokumenta mora imeti svoj enolični seqnumbr v večkratnikih 16384.
update RM10101 set SEQNUMBR = XXX where DEX_ROW_ID = XX
SEQNUMBR
-----------
16384
32768
49152
65536
81920 98304 Če prvi skript ne vrne rezultatov, poskusite
te:
izberite * iz RM10101 w, RM30301 h, kjer
w.RMDTYPAL = h.RMDTYPAL
inw.DOCNUMBR = h.DOCNUMBR in
w.SEQNUMBR = h.SEQNUMBR
izberite a.TRXSORCE,a.RMDTYPAL,a.DOCNUMBR iz RM20101 a, RM30301 b, kjer
a.RMDTYPAL = b.RMDTYPAL ina.DOCNUMBR = b.DOCNUMBR Ta članek
je
bil TechKnowledge ID dokumenta:32359