Właściwość tożsamości w kolumnie nie gwarantuje następujących :
Wyjątkowość wartości – Niepowtarzalność musi być wymuszona za pomocą klucza PRIMARY KEY lub UNIQUE lub UNIQUE index.
Kolejne wartości w ramach transakcji – Transakcja wstawiająca wiele wierszy nie gwarantuje uzyskania kolejnych wartości wierszy, ponieważ w tabeli mogą wystąpić inne współbieżne operacje wstawiania. Jeśli wartości muszą być następujące po sobie, transakcja powinna użyć blokady na wyłączność w tabeli lub użyć poziomu izolacji SERIALIZABLE.
Kolejne wartości po ponownym uruchomieniu serwera lub innych awariach –Program SQL Server może buforować wartości tożsamości ze względu na wydajność, a niektóre z przypisanych wartości mogą zostać utracone podczas awarii bazy danych lub ponownego uruchomienia serwera. Może to spowodować luki w wartości tożsamości po wstawieniu. Jeśli luki są niedopuszczalne, aplikacja powinna użyć generatora sekwencji z opcją NOCACHE lub użyć własnego mechanizmu do generowania wartości kluczy.
Ponowne wykorzystanie wartości – Dla danej właściwości tożsamości z określonym zarodkiem/przyrostem wartości tożsamości nie są ponownie używane przez aparat. Jeśli dana instrukcja INSERT nie powiedzie się lub jeśli instrukcja INSERT zostanie wycofana, zużyte wartości tożsamości zostaną utracone i nie zostaną ponownie wygenerowane. Może to skutkować przerwami podczas generowania kolejnych wartości tożsamości.
Również
Jeśli istnieje kolumna tożsamości dla tabeli z częstymi usunięciami, mogą wystąpić przerwy między wartościami tożsamości. Jeśli jest to problem, nie używaj właściwości IDENTITY. Jednak aby upewnić się, że nie utworzono żadnych luk lub aby wypełnić istniejącą lukę , oceń istniejące wartości tożsamości przed ich jawnym wprowadzeniem za pomocą opcji SET IDENTITY_INSERT ON
.
Sprawdź również Właściwości kolumny tożsamości i sprawdź wartość Przyrostu tożsamości. Powinien wynosić 1.