2012-08-10 15 views
8

Tengo una tabla creada y quiero modificar esa tabla. Quiero agregar una clave principal y identity(1,1).Alterar la columna de la tabla para la clave principal y la identidad

Puedo aplicar la clave principal pero la aplicación de la identidad da error. ¿Falta algo?

ALTER TABLE MyTable ADD PRIMARY KEY (Id) 

¿Cómo puedo agregar identidad también con la clave principal?

Respuesta

18

Usted no puede alterar la definición de un columna en la base de datos existente, para añadir la propiedad IDENTITY (ni para quitarlo). Usted tiene que crear una nueva columna con la propiedad IDENTITY:

ALTER TABLE MyTable ADD NewID int IDENTITY(1,1) not null 

Desafortunadamente, usted no es entonces capaz de asignar los valores de ID de edad para esta nueva columna. Si desea asignar los valores de ID, y luego dejar que IDENTITY se haga cargo, sería mejor que cree una nueva tabla con la estructura que desea, luego importe los datos de la tabla anterior (puede usar IDENTITY_INSERT para asignar valores al IDENTITY columna).

A continuación, soltará la tabla anterior y cambiará el nombre de la nueva tabla, si es necesario.

+0

Sí, gracias por ello. Intentaba agregar identidad a mi columna de existencia. –

+1

[Puede hacer esto solo como cambio de metadatos] (http://stackoverflow.com/q/6084572/73226) –

+2

si ** También se desea la clave principal **, ALTER TABLE LookupStates ADD ID int IDENTITY (1, 1) PRIMARY KEY no nulo' –

Cuestiones relacionadas