Nie chcesz wtedy używać kolumny z automatycznym przyrostem. Jeśli chcesz wypełnić luki, ustaw ją na kolumnę int i obsługuj logikę w przechowywanej procedurze lub wstawce.
EDYTUJ:
Ponieważ jest to kolumna int, możesz je uporządkować numerycznie. Po prostu wykonaj SELECT Ids FROM Table Order By Ids
aby uzyskać wszystkie identyfikatory i sprawdzić luki w zwróconym zestawie danych.
Prawdopodobnie istnieje bardziej płynny sposób na zrobienie tego, ale możesz zapętlić wyniki za pomocą kursora i porównać z INT
zmienna, która zwiększa się w całej pętli. Kiedy znajdziesz lukę (brak dopasowania) - przerwij pętlę i użyj tego INT
wartość jako INSERT
ID.
Nie napiszę za ciebie twojego kodu, ale to kilka kroków, które pomogą ci iść we właściwym kierunku. Powinna to być naprawdę podstawowa część programowania, z którą powinieneś sobie poradzić.
Mam nadzieję, że to pomoże.
EDYCJA #2:
Jak zauważyli inni, najlepszym posunięciem jest pozostawienie luk. O ile na stole nie ma czapki, jeśli chodzi o długość, a identyfikatory MUSZĄ wynosić 1-30 (dziwne), zostaw to w spokoju. Nie ma żadnych korzyści z wypełniania luk.
EDYCJA #3:
Jeszcze jedna rzecz do rozważenia:jeśli naprawdę musisz z jakiegoś powodu zachować 1-30, nie usuwaj swoich wierszy. Dodaj kolumnę, aby oznaczyć każdy wiersz jako aktywny lub nie, a następnie zaktualizuj wiersze, które są nieaktywne, gdy zajdzie taka potrzeba, a następnie oznacz je jako aktywne. To BARDZO dziwaczne, ale twoje wymagania są trochę dziwaczne, więc...