Testoval jsem, co říká Giogri, a pokud povolíte specifikaci identity (alespoň v roce 2008, pravděpodobně i jiné verze) poté, co tabulka obsahuje řádky, DB začne číslování na nejvyšší celočíselné hodnotě. Pokud máte jeden řádek se 100 jako hodnotou sloupce, pak povolte Identitu, další vložení bude 101. I s Identity Seed zadaným jako 1. Nebylo to, co bych očekával, ale stalo se to.
Kromě SET IDENTITY INSERT
, je zde také příkaz reseed. DBCC CHECKIDENT
příkaz, který obnoví hodnoty vaší identity zpět na to, co určíte.
Vzhledem k tomu, že povolení specifikace identity ve skutečnosti začíná nejvyšším celým číslem ve sloupci, někdo pravděpodobně buď použil SET IDENTITY_INSERT
nebo provedli DBCC CHECKIDENT
.
Nejrychlejší způsob, jak změnit pořadí, jak říká Andomar, je vypustit/znovu vytvořit sloupec takto
ALTER TABLE tbl
DROP COLUMN ident_column
GO
alter TABLE tbl
ADD ident_column int IDENTITY
SET IDENTITY_INSERT
dokumenty:http://msdn.microsoft.com/ en-us/library/aa259221(SQL.80).aspx
DBCC CHECKIDENT
dokumenty:http://msdn.microsoft.com/ en-us/library/aa258817(SQL.80).aspx