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
:
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;