Při každodenním vývoji SQL Serveru se sloupec identity typu Identity často používá jako samozvyšující se číslo struktury tabulky. Například číslo článku, sériové číslo záznamu atd. Odkazy na samorostoucí identifikované sloupce výrazně usnadňují vývoj databázových programů, ale někdy může tento tvrdohlavý typ pole také způsobovat určité potíže.
1. Upravte hodnoty polí v identifikačním sloupci:
Někdy je pro implementaci funkce nutné upravit hodnotu pole typu Identity self-growing, ale tato operace není ve výchozím nastavení povolena kvůli typu sloupce identity. Například pokud je v databázi normálně přidáno 5 dat, a 2 jsou v tuto chvíli smazány, pak pokud jsou data znovu přidána, samorostoucí identifikační sloupec bude automaticky přiřazen s hodnotou 6, ale pokud chcete při vkládání dat přiřadit hodnotu 3, není to ve výchozím nastavení povoleno. Pokud chcete změnit hodnotu tohoto pole, můžete úplně kontrolovat vkládání hodnoty identifikačního pole, stále existují metody, haha.
NASTAVTE IDENTITY_INSERT /[TABLE/] [ZAPNUTO| VYPNUTO] Pomocí výše uvedeného tvrzení můžete snadno ovlivnit, zda se sloupec samorozrůstajícího identifikátoru v tabulce automaticky poroste, tedy zda je dovoleno ručně zadat hodnotu pole sloupce identifikátoru při vkládání záznamu. Pokud je nastaveno jako zapnuto, můžete při vkládání zadat hodnotu identifikačního sloupce, což automaticky nezvyšuje přiřazenou hodnotu. Samozřejmě, pokud ho spotřebujete, musíte použít tento příkaz k vypnutí přepínače na výchozí stav, jinak pole automaticky nezvýší přiřazenou hodnotu při dalším vložení dat.
2. Resetovat hodnotu pole identifikačního sloupce:
Když je část datového záznamu smazána a nový záznam přidán později, hodnota identifikačního sloupce bude mít dlouhý interval nečinnosti, což vypadá velmi nepříjemně. I když smažete všechny záznamy v tabulce, hodnota sloupce identity bude nadále automaticky růst a neustále rostout, místo aby rostla od nuly. Hodnotu semene samorostoucího pole lze resetovat pomocí následujícího příkazu:
DBCC CHECKIDENT(TABLE, [RESEED| NORESEED], [1]) Výše uvedené tvrzení vynutí resetovat počáteční hodnotu zadané tabulky na 1. Pokud ale nechcete resetovat seed na 1, můžete třetí parametr nahradit hodnotou seedu, kterou chcete použít. Pokud chcete znát aktuální seed místo resetování identifikovaného seedu, musíte použít NORESEED místo nastavení třetího parametru. |