nie możesz dodaj IDENTITY
do istniejącej kolumny. Po prostu nie da się tego zrobić.
Musisz utworzyć nową kolumna typu INT IDENTITY
a następnie usuń starą kolumnę, której już nie potrzebujesz (i ewentualnie zmień nazwę nowej kolumny na starą - jeśli to konieczne)
Poza tym:nie zrób to w projektancie wizualnym — spróbuje odtworzyć tabelę z nową strukturą, skopiuj wszystkie dane (wszystkie 10 milionów wierszy), a następnie usuń starą tabelę.
O wiele bardziej wydajne jest używanie prostych instrukcji T-SQL — spowoduje to aktualizację „w miejscu”, nieniszczącą (żadne dane nie zostaną utracone) i nie trzeba skopiować w tym procesie około 10 milionów wierszy...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Po dodaniu nowej kolumny typu INT IDENTITY
do Twojej tabeli, zostanie ona automatycznie wypełniona kolejnymi numerami. Nie możesz temu zapobiec, a także nie możesz później zaktualizować wartości.
Żadna z tych opcji nie jest zbyt użyteczna, w końcu - możesz otrzymać różne wartości ID.... aby zrobić to dobrze, musisz:
- utwórz nową tabelę z wyprzedzeniem, z odpowiednią strukturą i
IDENTITY
już na miejscu - następnie włącz
SET IDENTITY_INSERT (yourtable) ON
na tej tabeli, aby umożliwić wstawianie wartości do kolumny tożsamości - skopiuj te dane z oryginalnego źródła
- Wyłącz ponownie wstawianie tożsamości:
SET IDENTITY_INSERT (yourtable) OFF
Tylko przy takim podejściu będziesz w stanie uzyskać ten sam identyfikator w kolumnie IDENTITY w nowej tabeli.