¿Cómo puedo agregar un auto_increment primary key en la base de datos SQL Server?

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

Estoy trabajando con un Microsoft SQL Server de la base de datos. Entiendo que no se puede hacer en un solo comando, pero cada comando trato volviendo errores de sintaxis.

editar —————

He creado la clave principal e incluso como not null. Sin embargo, no puedo configurar el auto_increment.

He probado:

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 dejaba poner NOT NULL bajo int

InformationsquelleAutor dcp3450 | 2011-07-21

6 Kommentare

  1. 110

    Se puede hacer en un solo comando. Usted necesita para establecer la propiedad de IDENTIDAD de «auto número»:

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

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

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

    Ver ALTER TABLE y la IDENTIDAD en MSDN

    • PERFECTO! gracias por tu ayuda. Voy a aceptar la respuesta una vez que el temporizador se me permite. 😀
    • Está bien, pero la sintaxis correcta es sin segundo «AGREGAR», es la siguiente: ALTER TABLE Mitabla AGREGAR MytableID int not NULL IDENTITY (1,1), RESTRICCIÓN PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)
  2. 21

    Si la tabla ya contiene datos y desea cambiar a una de las columnas de identidad:

    Primero crear una nueva tabla que tiene las mismas columnas y especificar la clave primaria-kolumn:

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

    A continuación, copie todas las filas de la tabla original a la nueva tabla utilizando un estándar de insertla instrucción.

    A continuación, colocar la tabla original.

    Y, finalmente, cambiar el nombre de TempTable a lo que usted desea utilizar sp_rename:

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

    • esta sintaxis de create table es buenas prácticas según lo aconsejado por el autor de este post en los comentarios, espero ayude a alguien.
  3. 13

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

    Haga clic derecho sobre la tabla seleccionada -> Modificar

    Clic derecho sobre el campo que desea establecer como PK –> Establecer Clave Principal

    En la Columna de Propiedades de conjunto «Especificación de la Identidad» en Sí, a continuación, especifique el valor inicial y el valor de incremento.

    A continuación, en el futuro, si usted quiere ser capaz de script para esta clase de cosa que usted puede hacer clic derecho sobre la tabla que acaba de modificar y seleccione

    De secuencia de COMANDOS»de la TABLA COMO» –> CREAR A

    de modo que usted puede ver por sí mismo la sintaxis correcta para realizar esta acción.

  4. 1

    Si usted tiene la columna es muy fácil.

    Mediante el diseñador, se podría establecer la columna como una identidad (1,1): haga clic derecho sobre la tabla → diseño → en la parte izquierda (clic derecho) → propiedades → en las columnas de identidad, seleccione el número de la columna.


    Propiedades:

    ¿Cómo puedo agregar un auto_increment primary key en la base de datos SQL Server?

    Columna de identidad:

    ¿Cómo puedo agregar un auto_increment primary key en la base de datos SQL Server?

  5. 0

    En SQL Server 2008:

    • Haga clic derecho sobre la tabla
    • Ir a diseño
    • Seleccione el tipo de datos numérico
    • Agregue un Nombre para la nueva columna
    • Hacer la Especificación de la Identidad ‘SÍ’

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea