Comment puis-je auto increment
le primary key
dans une table de base de données SQL Server
, j'ai parcouru le forum, mais je ne vois pas comment.
J'ai consulté les propriétés mais je ne vois pas d'option. J'ai vu une réponse qui vous permettait d'accéder à la propriété de spécification Identity
et de la définir sur yes, puis de définir le Identity increment
sur 1, mais la section est grisée et je ne peux pas changer le non en oui.
Il doit y avoir un moyen simple de faire cela mais je ne le trouve pas.
Assurez-vous que le type de données de la colonne Key est int
, puis définissez l'identité manuellement, comme le montre l'image
Ou lancez 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écutera si ID
n'est pas la seule colonne de la table
référence de l'image de 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
incrémentera automatiquement la colonne à partir du numéro 1. (Notez que le type de données de la colonne doit être un entier.) Si vous souhaitez ajouter cela à une colonne existante, utilisez un ALTER TABLE
= commande.
Modifier:
Un peu testé, et je ne trouve pas le moyen de modifier les propriétés d’identité via la fenêtre Propriétés de la colonne pour différentes tables. Je suppose que si vous voulez transformer une colonne en une colonne d’identité, vous DEVEZ utiliser une commande ALTER TABLE
.
Vous devez développer la section Identité pour exposer l'incrément et le germe.
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
Développez votre base de données, développez votre table, cliquez avec le bouton droit de la souris sur votre table et sélectionnez conception dans la liste déroulante.
Maintenant, allez Propriétés de la colonne ci-dessous, faites défiler vers le bas et recherchez la spécification d'identité , développez-le et vous trouverez une identité , rendez-le Oui. Maintenant, choisissez Incrément d'identité juste en dessous, indiquez la valeur que vous souhaitez incrémenter.
Peut-être qu'il me manque quelque chose, mais pourquoi cela ne fonctionne-t-il 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
Lorsque vous référencez la séquence dans, dites une commande INSERT, utilisez simplement:
NEXT VALUE FOR blah.blahsequence
Plus d'informations et d'options pour SEQUENCE
Lorsque vous utilisez Data Type: int, vous pouvez sélectionner la ligne à incrémenter automatiquement et accéder à la balise de propriétés de la colonne. Là, vous pouvez définir l'identité sur "oui". La valeur de départ pour l'auto-incrémentation peut également être modifiée ici. J'espère pouvoir aider;)
J'ai eu ce problème où j'avais déjà créé la table et que je ne pouvais pas le changer sans la laisser tomber, alors ce que j'ai fait est: cela, mais avait en SQL 2016)
Faites un clic droit sur la table dans l'explorateur d'objets:
Script Table as > DROP And CREATE To > New Query Editor Window
Ensuite, faites le montage du script dit par Josien; faites défiler vers le bas où se trouve le CREATE TABLE
, trouvez votre clé primaire et ajoutez IDENTITY(1,1)
à la fin avant la virgule. Script de lancement.
Les scripts DROP et CREATE m'ont aussi été utiles en raison de ce problème. (que le script généré gère.)