una tipo serial sentencia modificar existente dato columna campo autoincrementable autoincrement auto_increment agregar sql sql-server auto-increment

tipo - sentencia auto_increment sql server



¿Cómo agrego una clave principal auto_increment en la base de datos de SQL Server? (6)

Tengo una tabla configurada que actualmente no tiene clave principal. Todo lo que necesito hacer es agregar una primary key, no null, auto_increment .

Estoy trabajando con una base de datos de Microsoft SQL Server . Entiendo que no se puede hacer en un solo comando, pero cada comando que intento sigue devolviendo errores de sintaxis.

editar ---------------

He creado la clave principal e incluso la he configurado como no nula. Sin embargo, no puedo configurar el auto_increment .

He intentado:

ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment

Estoy usando NVARCHAR porque no me dejaría establecer NOT NULL en int


En SQL Server 2008:

  • Clic derecho sobre la mesa
  • Ir a diseñar
  • Seleccionar tipo de datos numérico
  • Añadir nombre a la nueva columna
  • Hacer especificación de identidad a ''SÍ''

Se puede hacer en un solo comando. Debe establecer la propiedad IDENTIDAD para el "número automático":

ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY

Más precisamente, para establecer una restricción de nivel de tabla con nombre:

ALTER TABLE MyTable ADD MytableID int NOT NULL IDENTITY (1,1), CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)

Ver ALTER TABLE and IDENTITY en MSDN


Si la tabla ya contiene datos y desea cambiar una de las columnas para identificarla:

Primero cree una tabla nueva que tenga las mismas columnas y especifique la clave-columna primaria:

create table TempTable ( Id int not null identity(1, 1) primary key --, Other columns... )

Luego copie todas las filas de la tabla original a la nueva tabla usando una declaración- insert estándar.

Luego suelta la mesa original.

Y finalmente, cambie el nombre de TempTable a lo que quiera usando sp_rename :

http://msdn.microsoft.com/en-us/library/ms188351.aspx


Si tienes la columna es muy fácil.

Con el diseñador, puede establecer la columna como una identidad (1,1): haga clic con el botón derecho en la tabla → diseño → en la parte izquierda (clic con el botón derecho) → propiedades → en las columnas de identidad, seleccione #column.

Propiedades :

Columna de identidad :


También puede realizar esta acción a través de SQL Server Management Studio.

Haga clic derecho en la tabla seleccionada -> Modificar

Haga clic con el botón derecho en el campo que desea establecer como PK -> Establecer clave principal

En Propiedades de columna, configure "Especificación de identidad" en Sí, luego especifique el valor de inicio y el valor de incremento.

Luego, en el futuro, si desea poder realizar un script de este tipo de cosas, puede hacer clic derecho en la tabla que acaba de modificar y seleccionar

"SCRIPT TABLE AS" -> CREAR PARA

para que puedas ver por ti mismo la sintaxis correcta para realizar esta acción.


puede intentar esto ... ALTER TABLE Your_Table ADD table_ID int NO NULL PRIMARY KEY auto_increment;