Comment insérer dans un tableau avec seulement une colonne IDENTITY?


14

Étant donné un tableau avec uniquement une colonne IDENTITY, comment insérer une nouvelle ligne? J'ai essayé ce qui suit:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)

Je teste quelque chose et n'ai besoin que de la colonne IDENTITY. Ce n'est pas pour la production. Sinon, une telle table peut être utilisée comme générateur de séquence, où aucune autre colonne n'est nécessaire.

Réponses:


21

De la documentation :

DEFAULT VALUES
Force la nouvelle ligne à contenir les valeurs par défaut définies pour chaque colonne.

Donc:

INSERT dbo.TABLE DEFAULT VALUES;

En plus:

  1. utilisez toujours le préfixe de schéma
  2. toujours terminer les instructions avec des points-virgules

Intéressant, il semble faire partie de SQL2003 (F222) mais je n'ai jamais vu la construction auparavant (INSERT INTO semble cependant être requis). Vous apprenez quelque chose de nouveau chaque jour :-)
Lennart

3

Une autre façon serait d'utiliser IDENTITY_INSERT. De cette façon, vous pouvez définir manuellement les valeurs que vous souhaitez saisir. Comme ceci:

SET IDENTITY_INSERT TABLE ON ;

INSERT INTO TABLE (ID) VALUES (1), (2) ;

SET IDENTITY_INSERT TABLE OFF ;

0

voici la solution

Insert into TableName Default values;
select Scope_identity();
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.