Nechcete pak používat sloupec s automatickým přírůstkem. Pokud chcete vyplnit mezery, nastavte jej na sloupec int a zpracujte logiku v uloženém proc nebo insertu.
UPRAVIT:
Protože se jedná o sloupec typu int, můžete je seřadit číselně. Stačí provést SELECT Ids FROM Table Order By Ids
získat všechna ID a zkontrolovat mezery ve vrácené datové sadě.
Pravděpodobně existuje hladší způsob, jak to udělat, ale můžete zacyklit výsledky pomocí kurzoru a porovnat je s INT
proměnná, která se v průběhu cyklu zvyšuje. Když najdete mezeru (žádná shoda) - přerušte smyčku a použijte tento INT
hodnotu jako INSERT
id.
Nebudu psát váš kód za vás, ale to jsou některé kroky, které vás přivedou správným směrem. Měl by to být opravdu základní kousek programování, který byste měli zvládnout.
Doufám, že to pomůže.
ÚPRAVA #2:
Jak již poznamenali ostatní, nejlepším krokem je nechat mezery. Pokud na stole není nějaká čepice co do délky a ID MUSÍ být 1-30 (divné), nechte to být. Vyplňování mezer nemá žádný přínos.
ÚPRAVA #3:
Ještě jedna věc, kterou je třeba zvážit:pokud opravdu musíte z nějakého důvodu ponechat 1-30, nemažte své řádky. Přidejte sloupec, abyste označili každý řádek jako aktivní nebo ne, a poté pouze aktualizujte řádky, které jsou neaktivní, když potřebujete, a poté je označte jako aktivní. To je VELMI otřepané, ale váš požadavek je poněkud otřepaný, takže...