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