Witam wszystkich forumowiczów
Właśnie zaczynam przygodę z Salem i jest to mój pierwszy post na tym forum.
Mam problem z kolumną o nazwie Id dla której w właściwościach kolumny ustawiłem Identity Increment na 1 i Identity Seed na 1. Jak wprowadziłem pierwszy rekord do tabeli w kolumnie Id pokazała się wartość 2 pomimo tego Identity Seed ustawiłem na 1. Dlaczego tak się dzieje ? Po usunięciu rekordu i wprowadzeniu nowego w kolumnie Id pokazała się wartość 3. Dlaczego nie 1 skoro nie mam żadnych rekordów w tabeli. Gdy chciałem za pomocą polecenie update....set Id =1 otrzymałem komunikat Cannot update identity column Id. Czyli co nie można updatować tej kolumny?
Dodam że pracuje w MS SQL Serwer 2016
0
0
Usuniecie rekordu, nie sprawia, że identity zacznie sie numerować od pierwszej wolnej wartości.
Kilka możliwości:
- Jeżeli usuwasz cała tabelę uzyj
truncate
to "wyzeruje" wartośc identitiy - Uzyj DBCC CHECKIDENT
- Do dodanie pól identity użyj: SET IDENTITY_INSERT
1
Identity
z założenia ma być unikalne a unikalność ta jest realizowana w ten sposób, że każde pobranie wartości (np. wstawienie rekordu) zwiększa licznik o 1 bez sprawdzania czy są "dziury" w numeracji. Dla własnego bezpieczeństwa nie próbuj używać autonumeracji jako liczby porządkowej lub licznika przy numeracji dokumentów, które nie mogą mieć dziur. Podstawowym i jedynym zadaniem pól autonumeracji jest zapewnienie unikalnych wartości!