Вы не можете добавить IDENTITY
в существующий столбец. Это просто невозможно сделать.
Вам нужно будет создать новый столбец типа INT IDENTITY
, а затем удалить старый столбец, который вам больше не нужен (и, возможно, переименовать новый столбец в старое имя - если это необходимо )
Также: я бы не сделал бы это в визуальном конструкторе - он попытается воссоздать таблицу с новой структурой, скопировать все данные (все 10 миллионов строк), а затем бросьте старый стол.
Гораздо эффективнее использовать прямые операторы T-SQL - это сделает обновление "на месте" неразрушающим (данные не будут потеряны), и его не нужно копировать около 10 миллионов строк в процессе ...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Когда вы добавляете в таблицу новый столбец типа INT IDENTITY
, он будет автоматически заполняться последовательными номерами. Вы не можете остановить это, а также не можете обновить значения позже.
Ни одна из этих опций на самом деле не очень полезна, в конце концов - вы можете получить разные значения идентификаторов .... чтобы сделать это правильно, вам нужно:
- создайте новую таблицу заранее, с правильной структурой и
IDENTITY
уже на месте
- затем включите
SET IDENTITY_INSERT (yourtable) ON
в этой таблице, чтобы значения могли быть вставлены в столбец идентификаторов
- скопировать эти данные из первоисточника
- снова отключить идентификационную вставку:
SET IDENTITY_INSERT (yourtable) OFF
Только при таком подходе вы сможете получить те же идентификаторы в столбце IDENTITY в новой таблице.