Odgovoriće verovatno i neki DBA, ja mogu svoje mišljenje da ti dam.
Nije isto koristiti DEFAULT i IDENTITY zato što ti, u opštem slučaju, baza ne dozvoljava da dodaš koju hoćeš vrednost u IDENTITY polje.
Npr. imam aplikaciju koja interno radi sa datasetovima, tipa ima master-detail tabele. U svojoj aplikaciji hoću da dodam novi red u master tabelu i nekoliko stavki koje mu odgovaraju u detail tabelu. Ako radim sa identity, moram da radim prvo upis u master tabelu i da vidim koji ID mi je novi slog dobio, postavim taj ID u foreign key novokreiranih detail slogova i tek onda upišem detail slogove u bazu.
Kad radim sa GUID-ima (UNIQUEIDENTIFIER), generišem slučajan GUID u aplikaciji i koristim ga kao ključ. Pri upisivanju onda nemam problema, tj. mogu u cugu da grunem u bazu i master i detail slogove bez potrebe za nekim dodatnim muljanjem između.
Takođe, IDENTITY polja mogu da prave probleme ako imam više baza sa kojima klijenti nezavisno rade, pa treba u nekom trenutku da merdžujem podatke (javljaju se dupli ključevi, pa moraju da se menjaju, i onda tu logiku treba ispratiti i u ostalim tabelama gde se taj ključ pojavljuje kao spoljni)...
Generalno, postoje slučajevi kad se može koristiti IDENTITY, ali je lakše potpuno ih izbaciti iz upotrebe, na duže staze manje boli glava.
[Ovu poruku je menjao jablan dana 01.10.2005. u 12:02 GMT+1]