Clé primaire d'incrément automatique dans SQL Server Management Studio 2012

Comment faire auto increment le primary key dans un SQL Server table de base de données, j'ai eu un coup d'oeil à travers le forum, mais ne peut pas voir comment.

j'ai regardé les propriétés mais je ne vois pas d'option, j'ai vu une réponse où vous allez à la propriété de spécification Identity et mettez à Oui et mettez le Identity increment à 1, mais cette section est grisée et je ne peux pas changer le non à Oui.

il doit y avoir un moyen simple de le faire mais je ne peux pas la trouver.

365
demandé sur DineshDB 2012-06-12 11:04:59

9 réponses

assurez - vous que le type de données de la colonne clé est int , puis paramétrez l'identité manuellement, comme le montre l'image

enter image description here

ou il suffit d'exécuter ce code

-- ID is the name of the  [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID 
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

le code s'exécute, si ID n'est pas la seule colonne dans le tableau

image de référence fifo

576
répondu Rab 2015-08-10 13:33:55

lorsque vous créez la table, vous pouvez créer une colonne IDENTITY comme suit:

CREATE TABLE (
  ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  ...
);

la propriété IDENTITY augmentera automatiquement la colonne du numéro 1. (Notez que le type de données de la colonne doit être un nombre entier.) Si vous voulez ajouter ceci à une colonne existante, utilisez une commande ALTER TABLE .

Edit:

Testé un peu, et je ne trouve pas une façon de changer les propriétés D'identité via la fenêtre de propriétés de la colonne pour différentes tables. Je suppose que si vous voulez faire une colonne une colonne d'identité, vous devez utiliser une commande ALTER TABLE .

139
répondu Josien 2015-11-01 11:36:50

vous devez étendre la section identité pour exposer l'accroissement et la graine.

enter image description here

Edit: j'ai supposé que vous auriez un type de données entier, pas char(10). Ce qui est raisonnable je dirais et valide quand j'ai posté cette réponse

81
répondu gbn 2012-06-12 07:19:07

élargissez votre base de données, agrandissez votre table en cliquant avec le bouton droit de la souris sur votre table et sélectionnez concevoir à partir de la liste déroulante. ITlooks like this

Maintenant, allez propriétés de la Colonne en dessous de défiler vers le bas et trouver "151910920 d'Identité" cahier des charges , développez-le et vous trouverez Est l'Identité Oui. Maintenant, choisissez incrément D'identité juste en dessous de lui donner la valeur vous voulez incrémenter. enter image description here

27
répondu FIFO BIZSOL 2013-04-19 19:43:46

peut-être que je manque quelque chose mais pourquoi ça ne marche pas avec L'objet SEQUENCE? N'est-ce pas ce que vous cherchez?

exemple:

CREATE SCHEMA blah.
GO

CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;

CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc

en faisant référence à la squence dans say an INSERT command il suffit d'utiliser:

NEXT VALUE FOR blah.blahsequence

plus d'informations et d'options pour SEQUENCE

7
répondu Techie Joe 2013-09-25 15:30:24

lorsque vous utilisez le type de données: int, vous pouvez sélectionner la ligne que vous voulez obtenir et aller à l'étiquette de propriétés de la colonne. De là, vous pouvez définir l'identité de "oui". La valeur de départ de l'auto-engagement peut également y être éditée. J'espère que je pourrais aider ;)

6
répondu M.Schrecker 2014-08-07 13:28:03

j'ai eu ce problème où j'avais déjà créé la table et ne pouvait pas la changer sans laisser tomber la table donc ce que j'ai fait était: (Pas sûr quand ils ont mis en œuvre ce mais l'avait dans SQL 2016)

clic droit sur la table de L'Explorateur D'objets:

Script Table as > DROP And CREATE To > New Query Editor Window

puis faire l'édition du script dit par Josien; faire défiler vers le bas où le CREATE TABLE est, trouver votre clé primaire et ajouter IDENTITY(1,1) à la fin, avant la virgule. Exécuter le script.

le DROP et créer script m'a aussi été utile à cause de ce numéro. (que le script généré gère.)

1
répondu cheriejw 2018-08-28 07:12:20

faites attention si vous voulez que les éléments D'ID soient contigius ou non. Comme SQLSERVER ID peut sauter par 1000 .

Exemple

: avant redémarrage ID = 11 après redémarrage, vous insérez une nouvelle ligne dans le tableau, puis l'id sera 1012.

0
répondu Java Main 2017-03-11 12:03:08

si la table est déjà remplie, il n'est pas possible de changer une colonne en colonne D'identité ou de la convertir en colonne de non-identité. Vous devez exporter toutes les données dehors alors vous pouvez changer le type de colonne à L'identité ou vice versa et ensuite importer des données en arrière. Je sais que c'est un processus douloureux, mais je crois qu'il n'y a pas d'alternative à l'utilisation de la séquence comme mentionné dans ce post.

-1
répondu Softec 2014-01-03 11:00:09