[ celawi @ 16.02.2008. 21:22 ] @
Jel neko moze da mi kaze kako da ID broj vratim na 1 (trenutno mi je na broju 17)?...Svaki put kad obrisem ceo sadrzaj tabele i krenem iz pocetka on mi poveca za jedan broj vise. Koristim Visual Web Developer (C#)
[ jablan @ 16.02.2008. 21:54 ] @
Pravi aplikaciju tako da ne zavisi od vrednosti ID polja.
[ celawi @ 16.02.2008. 21:59 ] @
Jel mozes da mi objasnis kako to da uradim?
[ jablan @ 16.02.2008. 22:25 ] @
Pa ostavi bazu nek ga sama generiše. Ili, ako baš hoćeš da ručno generišeš ključ, koristi GUID umesto integera.
[ Sasa Popovic @ 17.02.2008. 08:38 ] @
Pozdrav,

Jablan je u pravu. Ako zelis da imas ID koji ima predefinisane vrednosti onda kolona ne treba da bude automatski generisana (ne treba da bude IDENTITY kolona).
Ukoliko zelis da imas automatski generisanu kolonu a ipak zelis da vratis ID na 1 nakon brisanja svih rekorda, mozes da uradis sledece:

1. Izvrsis:
SET IDENTITY_INSERT IMETABELE ON
2. Insert-ujes u tabelu prvu vrstu tako sto ces zadati i vrednost za ID kolonu (vrednost postavis na 1 u ovom slucaju)
3. Izvrsis:
SET IDENTITY_INSERT IMETABELE OFF
4. Nastavis sa INSERT-ima; SQL Server ce nastaviti da generise ID-jeve ali sada pocevsi od broja 1.
[ Astek @ 17.02.2008. 09:13 ] @
Umesto DELETE iskoristi naredbu TRUNCATE(pretpostavljam da koristiš neki SQL server).
[ mmix @ 17.02.2008. 15:25 ] @
resetovanje identity ID-a se moz obaviti na dva nacina, najbolje sa truncate kao sto ti je Astek preporucio, ili, ako je to nemoguce (npr ako je tabela referencirana kao parent u foreign relaciji) onda preko dbcc-a:

Code:

DBCC CHECKIDENT ('imetabele', RESEED, 0)


Vracas seed na nulu zato sto u slucaju kad je u tabelu vec radjen insert ranije, sledeci record ulazi pod brojem seed + increment.