87 votes

Comment insérer dans une table avec une seule colonne IDENTITY ?

(Cette question m'est venue à l'esprit alors que j'essayais de répondre aux questions suivantes cet autre )

Considérons la table MS-SQL suivante, appelée GroupTable :

GroupID
-------
1  
2  
3  

où GroupID est la clé primaire et est une colonne d'identité.

Comment insérer une nouvelle ligne dans le tableau (et donc générer un nouvel ID) ? sans en utilisant IDENTITY_INSERT ON ?

Notez que ceci :

INSERT INTO GroupTable() Values ()   

... ne fonctionnera pas.

edit : nous parlons ici de SQL 2005 ou SQL 2008.

129voto

DJ. Points 10596

Cela devrait fonctionner :

INSERT INTO GroupTable DEFAULT VALUES

0 votes

Je n'arrive pas à le faire fonctionner avec Visual Studio 2008/SQL Express 2005. Avez-vous une idée ? Même disposition de table, une colonne, clé primaire, identity(1,1).

0 votes

J'utilise SQL 2008 R2, pas de joie pour moi non plus !

0 votes

Cela fonctionne pour moi sur SQL Server 2008 Express.

17voto

taoufik Points 2784

Voilà :

INSERT INTO GroupTable DEFAULT VALUES

3voto

RMK Points 31

Il est possible d'insérer plus d'une ligne à la fois.

Par exemple, pour insérer 30 lignes. INSERT INTO GroupTable DEFAULT VALUES GO 30

Cela va insérer 30 lignes en incrémentant la colonne d'identité à chaque fois.

0voto

Mike Pone Points 4840

Pouvez-vous essayer d'utiliser une séquence ou quelque chose de similaire ? Vous sélectionnez une séquence et elle vous donne la valeur suivante dans la séquence.

0 votes

Je pense qu'il parle d'Oracle DB

0 votes

Je sais que les séquences existent dans Oracle et je n'étais pas sûr que quelque chose de comparable existait dans SQL Server (le cas échéant). C'est pourquoi j'ai ajouté la mention "ou quelque chose de similaire" et j'ai donné la définition d'une séquence à titre de référence.

3 votes

SQL Server 2012 a SEQUENCE s.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X