Incrémenter automatiquement la clé primaire dans les tables SQL

En utilisant L'interface graphique Sql Express Management Studio 2008 (pas avec le codage), Comment puis-je incrémenter automatiquement une clé primaire?

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

Santé

53
demandé sur Michael Myers 2010-07-29 06:53:42

6 réponses

  1. on peut supposer que vous êtes dans la conception de la table. Si ce n'est pas le cas: cliquez avec le bouton droit sur le nom de la table - "Design".
  2. Cliquez sur la colonne requise.
  3. Dans "les propriétés de la Colonne" (en bas), faites défiler jusqu'à la "Spécification Identité" de la section, de la développer, puis bascule "(Identité)" sur "Oui".

entrez la description de l'image ici

94
répondu Chris Diver 2012-05-09 23:35:59

Faites un clic droit sur la table dans SSMS, "concevez-la" et cliquez sur la colonne id. Dans les propriétés, définissez l'identité à ensemencer @ par exemple 1 et à incrémenter de 1-save et vous avez terminé.

10
répondu Will A 2010-07-29 02:57:31

Bien que ce qui suit ne soit pas une façon de le faire dans L'interface graphique, vous pouvez vous auto-incrémenter simplement en utilisant le type de données D'identité (start, increment):

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

L'instruction insert doit 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
9
répondu andrej 2017-08-16 09:48:53

Je N'ai pas Express Management Studio sur cette machine, donc je vais en fonction de la mémoire. Je pense que vous devez définir la colonne comme "identité", et il devrait y avoir un [+] sous Propriétés où vous pouvez développer, et définir auto-incrément à true.

6
répondu Cambium 2010-07-29 02:58:09

Pour ceux qui ont le problème de ne pas vous laisser enregistrer une fois qu'il est modifié selon 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 nécessitant une recréation de table " - > OK

Et essayez d'enregistrer comme cela devrait fonctionner maintenant

4
répondu mazenchami 2013-11-05 18:30:24

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

Créer un employé de table( id int identité, nom varchar(50), primary key(id) ).. J'essaie de voir s'il existe un moyen de modifier une table existante et de faire de la colonne une identité qui ne semble pas possible théoriquement (car les valeurs existantes pourraient nécessiter une modification)

0
répondu user1588737 2013-12-17 21:44:15