Imam primarni ključ data typa int i postavljen je da ide od broja jedan i da se povečava za jedan broj, a meni se ponekad dogodi da se taj broj poveča za 2 ili 3.
Ima ko pojma zašto se to događa i kako to popraviti?
Imam primarni ključ data typa int i postavljen je da ide od broja jedan i da se povečava za jedan broj, a meni se ponekad dogodi da se taj broj poveča za 2 ili 3.
Ima ko pojma zašto se to događa i kako to popraviti?
Pretpostavka je da koristiš identity polje - ako je tako - onda svaki upis povećava vrijednost "brojača" za 1, no ako transakcija "ne prođe" (rollback) taj brojač se ne vraća na prethodnu vrijednost. Dakle upišeš prvi redak i on dobije broj 1. Pokušaš upisati drugi redak, ali "zaboraviš" upisati neko polje (ili što već) i baza javi grešku i ne upiše redak, ali brojač je sad na 2. Upišeš drugi redak i njegov ID je sad 3, a ne 2. Popraviti se može naredbom DBCC DBREINDEX - ali je nepraktično.
Ok, hvala.
Imam novi problem, kad napravim reindex ne uzima mi za početni unos broj 1, nego broj kojim sam završio zadnji unos (uvečan za 1) prije reindeksacije (prije reindexa su obrisani svi podaci u tablici).
Imam novi problem, kad napravim reindex ne uzima mi za početni unos broj 1, nego broj kojim sam završio zadnji unos (uvečan za 1) prije reindeksacije (prije reindexa su obrisani svi podaci u tablici).
Zasto zelis da ti ide po redu, jednostavno nije bitno, vazno je samo da je primarni kljuc unikatan.
Uz to je neprakticno jer sto ces raditi kad izbrises neki unos, promijeniti sve primarne kljuceve ?
Zasto zelis da ti ide po redu, jednostavno nije bitno, vazno je samo da je primarni kljuc unikatan.
Uz to je neprakticno jer sto ces raditi kad izbrises neki unos, promijeniti sve primarne kljuceve ?
Trenutno isprobavam bazu da vidim kako radi pa kad jednom krene u upotrebu da mi sve počinje od broja 1.
Mea culpa - naredba bi bila DBCC CHECKIDENT, a ne DBREINDEX dakle nešto poput DBCC CHECKIDENT('NazivTablice', RESEED, 0) - nema veze s indexima.
ako zelis da kad ispraznis bazu i ponovno pocnes puniti da ti auto increment brojac krene od 1
onda ne radis delete na tablicu npr.: DELETE FROM tablica_1
nego trebas napraviti truncate npr.: TRUNCATE TABLE tablica_1
to je zato što delete kao sto mi i ime kaze samo pobrise sve zapise iz tablice i to je to
truncate "resetira" tablicu i objekte koji su vezani na nju (auto increment, trigers, index, ....)