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.

Apocatastasis
la source

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
Aaron Bertrand
la source
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 ;
Kahn
la source
0

voici la solution

Insert into TableName Default values;
select Scope_identity();
Muhammad Jawad
la source