2010-07-29 27 views
52

Al utilizar la GUI Express Management Studio 2008 de Sql (no con la codificación), ¿cómo puedo hacer que una clave principal se autoincremente?Aumento automático de la clave principal en tablas SQL

Déjenme explicar: hay una tabla que tiene una columna llamada "id" y los elementos de esta columna se configuran como claves principales. Quiero hacer que esta columna aumente automáticamente, ¿pero cómo?

Saludos

+3

Por supuesto que no hay que hacer cambios a través de la interfaz gráfica de usuario. Debe escribir scripts para realizar tareas y poner htem en control de fuente, para que pueda implementar fácilmente cambios en la base de datos a producción. La GUI es una herramienta muy mala para cambiar las tablas, especialmente cuando crecen. – HLGEM

Respuesta

93
  1. Es de suponer que están en el diseño de la tabla. De lo contrario: haga clic con el botón derecho en el nombre de la tabla - "Diseño".
  2. Haga clic en la columna requerida.
  3. En "Propiedades de las columnas " (en la parte inferior), vaya a la sección "Especificación de identidad ", expandirlo y luego alternar "(es la identidad)" a "Sí ".

enter image description here

10

Haga clic derecho sobre la mesa en SSMS, 'Diseño', y haz clic en la columna id. En las propiedades, establezca la identidad para ser sembrado @ e.g. 1 y para tener un incremento de 1 - guardar y listo.

+0

"identidad" y "identificador de identidad" están deshabilitados. ¿Cómo puedo habilitarlos? – samsam114

+0

Según otras respuestas, deberá marcar previamente la columna como una columna de identidad: establezca 'is identity' en 'yes' –

6

No tengo Express Management Studio en esta máquina, así que voy basado en la memoria. Creo que debe establecer la columna como "IDENTIDAD", y debe haber un [+] debajo de las propiedades donde puede expandir, y establecer el auto-incremento en verdadero.

4

para aquellos que tienen el problema de que todavía no lo que le permite ahorrar una vez que se cambia de acuerdo a contestar a continuación, haga lo siguiente:

Herramientas -> Opciones -> diseñadores -> Tabla y base de datos de los diseñadores -> Desactive la opción "evitar guardar cambios que requieren mesa de re-creación" caja -> OK

y tratar de salvar lo que debería funcionar ahora

0

Creo que hay una manera de hacerlo en la fase de definición como esta

crear tabla de empleo ee ( id int identity, nombre varchar (50), clave principal (id) ) .. Estoy tratando de ver si hay una forma de alterar una tabla existente y hacer que la columna Identity no sea posible teóricamente (ya que los valores existentes podrían necesitar modificaciones)

9

Aunque lo siguiente no es manera de hacerlo en la interfaz gráfica de usuario pero se puede obtener autoincremental simplemente usando el tipo de datos IDENTIDAD (inicio, incremento):

CREATE TABLE "dbo"."TableName" 
(
    id int IDENTITY(1,1) PRIMARY KEY NOT NULL, 
    name varchar(20), 
); 

la instrucción de inserción debe enumerar todas las columnas excepto la columna id (que se llena de valor autoincremented):

INSERT INTO "dbo"."TableName" (name) VALUES ('alpha'); 
INSERT INTO "dbo"."TableName" (name) VALUES ('beta'); 

y el resultado de

SELECT id, name FROM "dbo"."TableName"; 

habrá

id name 
-------------------------- 
1  alpha 
2  beta 
Cuestiones relacionadas