web-dev-qa-db-fra.com

Incrémentation automatique de la clé primaire dans les tables SQL

À l'aide de l'interface graphique de SQL Express Management Studio 2008 (sans codage), comment puis-je incrémenter une clé primaire?

Laissez-moi vous expliquer: il y a une table qui a une colonne nommée "id" et les éléments de cette colonne sont définis pour être des clés primaires. Je veux rendre cette colonne auto-incrémentée, mais comment?

À votre santé

56
samsam114
  1. Vous êtes probablement dans la conception de la table. Sinon, cliquez avec le bouton droit sur le nom de la table - "Design".
  2. Cliquez sur la colonne requise.
  3. Dans "Propriétés de la colonne" (en bas), faites défiler jusqu'à la section "Spécification de l'identité", développez-la, puis basculez "(Identité)) = "à" Oui ".

enter image description here

106
Chris Diver

Ce qui suit n’est pas une façon de le faire dans l’interface graphique, mais vous pouvez obtenir une auto-incrémentation simplement en utilisant le type de données IDENTITY (début, incrément):

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

l'instruction insert devrait lister toutes les colonnes sauf la colonne id (elle sera remplie avec une valeur auto-incrémentée):

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

et le résultat de

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

sera

id    name
--------------------------
1     alpha
2     beta
10
andrej

Cliquez avec le bouton droit de la souris sur la table dans SSMS, sélectionnez-la, puis cliquez sur la colonne id. Dans les propriétés, définissez l'identité de manière à ce qu'elle soit à l'origine @, par exemple. 1 et d’avoir un incrément de 1 - sauvegarder et vous avez terminé.

10
Will A

pour ceux qui ont le problème ne vous permettent toujours pas d'économiser une fois que cela a été modifié conformément à la réponse ci-dessous, procédez comme suit:

outils -> options -> concepteurs -> Concepteurs de tables et de bases de données -> décochez la case "empêcher l'enregistrement des modifications qui nécessitent une re-création de table" -> OK

et essayez de sauver comme cela devrait fonctionner maintenant

6
mazenchami

Je n'ai pas Express Management Studio sur cette machine, je suis donc basé sur la mémoire. Je pense que vous devez définir la colonne comme "IDENTITY", et il devrait y avoir un [+] sous propriétés où vous pouvez développer et définir l'auto-incrémentation à true.

6
Cambium

Je pense qu'il y a un moyen de le faire au stade de la définition comme celui-ci

create table employee (id int identité, nom varchar (50), clé primaire (id)). car les valeurs existantes pourraient avoir besoin d'être modifiées)

0
user1588737