Garanterat eftersom du under absolut inga som helst omständigheter skulle kunna få ett värde som kan vara mindre än eller lika med det nuvarande maxvärdet? Nej, det finns ingen sådan garanti. Som sagt, omständigheterna under vilka det scenariot skulle kunna inträffa är begränsade:
- Någon inaktiverar identitetsinfogning och infogar ett värde.
- Någon ser om identitetskolumnen.
- Någon ändrar tecknet för ökningsvärdet (dvs. istället för +1 ändras det till -1)
Om du antar att inga av dessa omständigheter är, är du säker från tävlingsförhållanden och skapar en situation där nästa värde är lägre än ett befintligt värde. Som sagt, det finns ingen garanti för att raderna kommer att beslutas i samma ordning som deras identitetsvärden. Till exempel:
- Öppna en transaktion, infoga i tabellen med en identitetskolumn. Låt oss säga att den får värdet 42.
- Infoga ett annat värde i samma tabell. Låt oss säga att den får värdet 43.
Tills den första transaktionen är genomförd finns 43 men 42 inte. Identitetskolumnen reserverar helt enkelt ett värde, den dikterar inte ordningsföljden för bekräftelser.