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

Comment puis-je incrémenter automatiquement la key primaire dans une table de database SQL Server, j'ai jeté un oeil à travers le forum, mais je ne vois pas comment.

J'ai regardé les propriétés, mais je ne vois pas une option, j'ai vu une réponse où vous allez à la propriété de spécification d'identité et réglez-la sur yes et définissez l'incrément d'identité à 1, mais cette section est grisée et je peux Ne changez pas le oui.

Il doit y avoir un moyen simple de le faire mais je ne le trouve pas.

Assurez-vous que le type de données de la colonne Clé est int , puis définissez l'identité manuellement, comme le montre l'image

entrez la description de l'image ici

Ou exécutez simplement 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 sera exécuté, si ID n'est pas la seule colonne de la table

reference de l'image fifo's

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 va automatiquement incrémenter la colonne du numéro 1. (Notez que le type de données de la colonne doit être un entier.) Si vous voulez append ceci à une colonne existante, utilisez une command ALTER TABLE .

Modifier:
Testé un peu, et je ne peux pas find un moyen de modifier les propriétés d'identité via la window properties de la colonne pour différentes tables. Je suppose que si vous voulez faire une colonne une colonne d'identité, vous devez utiliser une command ALTER TABLE .

Vous devez développer la section Identité pour exposer l'incrément et la graine.

entrez la description de l'image ici

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 database, développez votre tableau, cliquez droit sur votre tableau et select design dans la list déroulante. ITlooks comme ça

Maintenant allez propriétés de la colonne ci-dessous, faites défiler vers le bas et find la spécification d'identité , développez-le et vous findez Is Identity rendre Oui. Maintenant, choisissez Identity Increment juste en dessous de la valeur que vous voulez incrémenter. entrez la description de l'image ici

Peut-être qu'il me manque quelque chose mais pourquoi cela ne fonctionne pas avec l'object SEQUENCE? Ce n'est 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 referencez la séquence dans une command INSERT, utilisez simplement:

 NEXT VALUE FOR blah.blahsequence 

Plus d'informations et d'options pour SEQUENCE

Lorsque vous utilisez Type de données: int, vous pouvez sélectionner la ligne que vous souhaitez activer automatiquement et accéder à la balise properties de la colonne. Là, vous pouvez définir l'identité à «oui». La valeur de départ de l'auto-incrémentation peut également être modifiée ici. J'espère pouvoir aider;)

Soyez prudent si vous voulez que les éléments d'ID soient contigus ou non. Comme l'identifiant SQLSERVER peut sauter de 1000.

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

Si la table est déjà remplie, il n'est pas possible de modifier une colonne en colonne IDENTITY ou de la convertir en colonne non IDENTITY. Vous devez exporter toutes datatables, puis vous pouvez modifier le type de colonne en IDENTITY ou vice versa, puis réimporter datatables. Je sais que c'est un process douloureux mais je crois qu'il n'y a pas d'autre alternative que d'utiliser la séquence comme mentionné dans ce post.