Czy podczas ustawiania wartości nasion w kolumnie SQL Server należy ustawić jakieś uwagi techniczne dla kolumny Identity w SQL Server?

Ta kolumna będzie PK i oznaczona jako przyrost automity tożsamości.

Biznes nie chce rozpocząć identyfikatorów na 1, ponieważ będą publicznie widoczne w query Strings i wyświetlane na kilku stronach. Korzystanie z wyższej liczby losowej sprawia, że wygląda lepiej, to wszystko ma dla mnie sens i chcę się upewnić, że nie brakuje mi żadnych rozważań technicznych.

Jest to przykład tego, co zamierzam zrobić

--Reset manufacturer id to a Random 5 digit number
DECLARE @newId INT = (SELECT FLOOR(RAND() * 100000) + 10000  % 10000) 
DBCC CHECKIDENT (Manufacturer, RESEED, @newId );
1
GER 15 luty 2017, 23:23

2 odpowiedzi

Najlepsza odpowiedź

Podsumowując kilka komentarzy do odpowiedzi.

Wartość tożsamości początkowej musi rozważyć wszelkie wartości już w tabeli. Ponieważ identyfikator zostanie automatycznie przyrost, może zderzyć się z już istniejącymi wartościami, jeśli identyfikator jest zbyt niski.

Duże luki mogą pojawić się w sekwencji identyfikatorów. Jednak mało prawdopodobne, wysokie ziarno startowe i wiele szczelin może prowadzić do wyczerpania zakresu Int do kolumny. Wtedy aplikacja ma boom!

Wszelkie indeksy na kolumnie nie powinny obchodzić, jeśli zaczyna się od 1 lub 99999.

0
GER 16 luty 2017, 12:29

Nie widzę żadnego problemu z rozpoczęciem przypadkowego numeru przyszłego.

0
Tod Meinke 15 luty 2017, 20:41