Identitetsegenskaben på en kolonne garanterer ikke følgende :
Værdiens unikke karakter – Unikhed skal håndhæves ved at bruge en PRIMÆR NØGLE eller UNIK begrænsning eller UNIK indeks.
Fortløbende værdier i en transaktion – En transaktion, der indsætter flere rækker, er ikke garanteret at få fortløbende værdier for rækkerne, fordi andre samtidige indsættelser kan forekomme på bordet. Hvis værdierne skal være fortløbende, skal transaktionen bruge en eksklusiv lås på bordet eller bruge isolationsniveauet SERIALIZABLE.
Fortløbende værdier efter servergenstart eller andre fejl –SQL Server kan cache identitetsværdier af ydeevneårsager, og nogle af de tildelte værdier kan gå tabt under en databasefejl eller servergenstart. Dette kan resultere i huller i identitetsværdien ved indsættelse. Hvis huller ikke er acceptable, skal applikationen bruge en sekvensgenerator med NOCACHE-indstillingen eller bruge deres egen mekanisme til at generere nøgleværdier.
Genbrug af værdier – For en given identitetsejendom med specifik seed/tilvækst genbruges identitetsværdierne ikke af motoren. Hvis en bestemt insert-sætning mislykkes, eller hvis insert-sætningen rulles tilbage, går de forbrugte identitetsværdier tabt og vil ikke blive genereret igen. Dette kan resultere i huller, når de efterfølgende identitetsværdier genereres.
Også
Hvis der findes en identitetskolonne for en tabel med hyppige sletninger, kan der opstå huller mellem identitetsværdier. Hvis dette er et problem, skal du ikke bruge egenskaben IDENTITY. Dog for at sikre, at der ikke er oprettet huller, eller for at udfylde et eksisterende hul , evaluer de eksisterende identitetsværdier, før du eksplicit indtaster en med SET IDENTITY_INSERT ON
.
Tjek også egenskaberne for identitetskolonnen og tjek værdien for identitetstilvæksten. Den skal være 1.