Nemůžete přidat IDENTITY
do existujícího sloupce. To prostě nelze udělat.
Budete muset vytvořit nový sloupec typu INT IDENTITY
a poté vypusťte starý sloupec, který již nepotřebujete (a případně přejmenujte nový sloupec na starý název – pokud je to potřeba)
Také:Nechci proveďte to ve vizuálním návrháři – pokusí se znovu vytvořit tabulku s novou strukturou, zkopírujte všechna data (všech 10 milionů řádků) a poté starou tabulku zrušte.
Je mnohem efektivnější používat přímé příkazy T-SQL – to provede aktualizaci „na místě“, nedestruktivní (neztratí se žádná data), a to ne potřeba zkopírovat přibližně 10 milionů řádků v procesu...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Když přidáte nový sloupec typu INT IDENTITY
do vaší tabulky, pak se automaticky vyplní po sobě jdoucími čísly. Nemůžete tomu zabránit a také nemůžete později aktualizovat hodnoty.
Ani jedna z těchto možností nakonec není příliš užitečná – můžete skončit s různými hodnotami ID... abyste to udělali správně, museli byste:
- vytvořte novou tabulku předem se správnou strukturou a
IDENTITY
již na místě - pak zapněte
SET IDENTITY_INSERT (yourtable) ON
na této tabulce, aby bylo možné vkládat hodnoty do sloupce identity - zkopírujte tato data z původního zdroje
- znovu vypněte vkládání identity:
SET IDENTITY_INSERT (yourtable) OFF
Pouze s tímto přístupem budete moci získat stejná ID ve sloupci IDENTITY ve vaší nové tabulce.