Löschen von Identitäts-IDs in SQL

Wenn ich eine ID-Spalte habe, die ein Primärschlüssel ist und Identität auf TRUE gesetzt ist, sollte das Einfügen jeder Zeile meine ID erhöhen. Meine Frage ist, wenn ich 100 Zeilen und eine function (irgendwo im Code) habe, um randome Zeile auszuwählen (rand (1,101)), wie man mit einer Situation umgehen kann, wenn ich eine Zeile lösche und eine randome function fehlschlägt, wenn die eine ausgewählt wurde . Ich konnte diese exception in den Code zu verwalten, aber frage mich, ob es einen path in SQL, um diese gelöschten Zeilen Lücken mit fortsetzen IDs zu füllen.

Guessing SQL server wegen "Identität"

Verwenden Sie TOP 100.. ROW_NUMBER() stattdessen, um 100 zusammenhängende Werte zu erzeugen und diesen Wert zu filtern.

Oder verwenden Sie TOP 1..ORDER BY NEWID() , um eine randome Zeile zu wählen.

Interne IDENTITY-Werte haben keine Bedeutung, außer als Surrogat-Schlüssel. Beachten Sie, dass ein INSERT-Fehler auch den IDENTITY-Wert erhöht, nicht nur löscht.