Usted no puede agregar IDENTITY
a una columna existente. Simplemente no se puede hacer.
Tendrá que crear una nueva columna de tipo INT IDENTITY
y luego dejar caer la columna de edad que no necesita más (y posiblemente cambiar el nombre de la nueva columna al nombre antiguo - si es que se necesita)
Además: Lo haría no haga esto en el diseñador visual - esto intentará recrear la tabla con la nueva estructura, copie todos los datos (las 10 millones de filas), y luego suelte la tabla anterior.
Es mucho más eficiente usar instrucciones T-SQL rectas: esto hará una actualización "in situ", no destructiva (no se pierde ningún dato), y no necesita para copiar alrededor de 10 millones filas en el proceso ...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Cuando se agrega una nueva columna de tipo INT IDENTITY
a su mesa, luego se rellenan automáticamente con números consecutivos. No puede evitar que esto suceda, y tampoco puede actualizar los valores más adelante.
Ninguna de esas opciones es realmente muy útil, al final - que podría terminar con diferentes valores de ID .... para hacer esto bien, habría que:
- crear la nueva tabla antes de tiempo, con la estructura adecuada y la
IDENTITY
ya en el lugar
- después enciende
SET IDENTITY_INSERT (yourtable) ON
en esa mesa para permitir valores a ser insertado en la columna de identidad
- copia sobre estos datos de la fuente original
- desvío identidad insertada agai n:
SET IDENTITY_INSERT (yourtable) OFF
Solo con este enfoque podrá obtener los mismos ID en una columna de IDENTIDAD en su nueva tabla.
¿Algo así le dio un tiempo de espera? 'alter table TableName add ID int identity (1, 1) clave principal' –
Puede usar' ALTER TABLE ... SWITCH' para hacer esto casi al instante. Incluso en una mesa de 10 millones de filas. –
posible duplicado de [cómo establecer el incremento automático después de crear una tabla sin pérdida de datos?] (Http://stackoverflow.com/questions/6084572/how-to-set-auto-increment-after-creating-a-table -sin-any-data-loss) –