Avatar billede -mundi- Nybegynder
06. februar 2004 - 12:03 Der er 3 kommentarer og
1 løsning

Autoincrement felt springer tal over

Jeg har lidt bøvl med en tabel , jeg har et id felt som er sat til autoincremente med 1. fornavn efternavn samt en masse andre brugerdata.

Problemet er at id'et "springer" tal over og derudover laver blanke records, eks er der lige nu
68
79
106
109
117

hvor der kun er data i 117, de andre records er blanke.
alle felter er sat til allow null, på nær di feltet slf..

Jeg har prøvet at rename den oprindelige tabel og oprette den igen, men problemet er der stadigvæk.
Nogen ideer til hvad der kan være galt ?
Avatar billede trer Nybegynder
06. februar 2004 - 12:14 #1
Check lige at identity er sat til 1,1 - og dernæst; Identity lægger fx 1 til den højeste værdi i kolonnen - dvs. at næste enhed vil være 118.  Slettede værdier bliver ikke genbrugt.

mht blanke records - det kommer fra applikationen. Hvis den er skrevet så man først opretter en record og derefter updater den med værdier - så vil du få blanke records hvis brugeren fx fortryder inden værdierne er opdateret.

Afhængigt af hvordan applikationen opretter ny records, kan det også være forklaringen på de manglende numre. Hvis applikationen starter med med, i en transaktion, at oprette en ny record med en insert, så vil identity værdien "blive brugt".  En anden bruger vil så få den næste værdi igen. Hvis den første bruger derefter afbryder (rollback), så vil den værdi "mangle" i oversigten.
Avatar billede -mundi- Nybegynder
06. februar 2004 - 12:33 #2
increment er sat til 1.
der indsættes med almindelig sql "insert into tabel bla bla bla"
ingen transactions da der kun er 1 step
id numrene ligger som nu :
68
79
106
109
117
jeg har selv slettet indtil 68, hvor der dog også var problemer.

Jeg prøvede lige manuelt via entreprisemangareren at indtastet en record manuelt, den fik id 121 istedet f0r 118.

Hva faen sker der ?
Avatar billede trer Nybegynder
06. februar 2004 - 12:43 #3
prøv lige at scripte tabellen og vis den her - vil gerne se ddl'en.

Du kan også prøve at køre en profiler på basen med t-sql statements slået til. Så kan du se hvad SQL Server registerer kørt mod den.
Avatar billede -mundi- Nybegynder
06. februar 2004 - 13:27 #4
Har fundet ud af det :-) Det var fordi der vasr nogen som skrev længere tekst end feltstørrelsen, og jeg havde ikke lavet check på dett
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester