04. maj 2001 - 10:42Der er
10 kommentarer og 1 løsning
Problem med autonummering i en MS SQL 6.5
Jeg har et stort problem... Jeg har en tabel, hvor der automatisk tildelses et nummer ved insert. Der sker så det, at engang imellem kan en record få tildelt et nummer der allerede er tildelt.. og derved opstår der 2 records med samme id nummer... Dette burde ikke kunne lade sig gøre... har du evt. prøver noget ligende og løst problemet eller har du en ide til hvad der kan gå galt... JA så er det dine point... /arno
jeg er ikke sikker men det lyder som om du ikke har sat dette felt til at være et nøgle felt. selve typen skal være en int. og allow nulls skal sættes til false. så burde det virke
Hvis det bare var så simpelt... Feltet er sat til identity , og ingen null værdi tillades.. Værdien i feltet generes automatisk ved insert..
Så alt er egentlig som det skal være - men stadig oplever jeg at der anvendes et nummer jeg allerede har brugt... Fejlen opstår ikke bare i en tabel med jeg har oplevede at den opstår i flere tabeller der ikke er afhængig af hinanden.. /arno
Det er meget længe siden, jeg har arbejdet med 6.5 - men jeg mener én af de senere Service Packs hjalp på problemet. Hvilken SP er den seneste, du har installeret?
Husker det desværre ikke, men prøv som udgangspunkt den seneste (de sædvandlige forholdsregler gælder naturligvis: Opgrader ikke i dit produktionsmiljø før du har testet SPen, osv).
Problemet kan så vidt jeg erindrer opstå i forbindelse med, at serveren ikke lukkes korrekt ned, fordi IDENTITY værdierne holdes i hukommelsen. Crasher Jeres server ofte, eller lukkes den jævnligt ukorrekt ned?
Alternativt kan du køre DBCC CHECKIDENT ved opstart. Ikke en smuk løsning, men ikke desto mindre en løsning.
Jeg kan gøre min id - til en unik key - hvilket vil sige at jeg (eller mine brugere) vil få en besked når de vil indsætte i noget der har et id der allerede eksistere i forvejen.. så vil jeg kunne lave en DBCC CHECKIDENT og få de forskellige tabeller med identier på plads.... JA.. det prøver jeg... og mwittrock du fik mig på vej - point til dig..
/arno
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.