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.
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
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
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
.
vous devez étendre la section identité pour exposer l'accroissement et la graine.
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
é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.
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.
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
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 ;)
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.)
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.
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.