MS SQL int problem

poruka: 8
|
čitano: 2.833
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
offline
MS SQL int problem

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?

 
0 0 hvala 0
14 godina
offline
Re: MS SQL int problem

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.

16 godina
offline
MS SQL int problem

Ok, hvala.

 
0 0 hvala 0
16 godina
offline
MS SQL int problem

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).

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: MS SQL int problem
tintin kaže...

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 ?

 

 

 

All religions are the same: religion is basically guilt, with different holidays.
16 godina
offline
Re: MS SQL int problem
drnde kaže...

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.

14 godina
offline
Re: MS SQL int problem

Mea culpa - naredba bi bila DBCC CHECKIDENT, a ne DBREINDEX dakle nešto poput DBCC CHECKIDENT('NazivTablice', RESEED, 0) - nema veze s indexima.

17 godina
neaktivan
offline
MS SQL int problem

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, ....)

 

 

 

<a href="http://www.marketagent.com/f.asp?RefUID=372682" target="_new"><img style="border-style: none; width: 120px; height: 60px" src="http://www.marketage
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice