Как вставить в таблицу только столбец IDENTITY?

14

Учитывая таблицу только со столбцом IDENTITY, как вставить новую строку? Я пробовал следующее:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

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

Я тестирую что-то и мне нужен только столбец IDENTITY. Это не для производства. В противном случае такую ​​таблицу можно использовать в качестве генератора последовательности, где другие столбцы не нужны.

апокатастасис
источник

Ответы:

21

Из документации :

DEFAULT VALUES
Заставляет новую строку содержать значения по умолчанию, определенные для каждого столбца.

Так:

INSERT dbo.TABLE DEFAULT VALUES;

К тому же:

  1. всегда используйте префикс схемы
  2. всегда заканчивать операторы точками с запятой
Аарон Бертран
источник
Интересно, что это, кажется, часть SQL2003 (F222), но я никогда раньше не видел конструкцию (хотя INSERT INTO, кажется, требуется). Вы узнаете что-то новое каждый день :-)
Леннарт
3

Другим способом было бы использовать IDENTITY_INSERT. Таким образом, вы можете вручную определить, какие значения вы хотите вставить. Вот так:

SET IDENTITY_INSERT TABLE ON ;

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

SET IDENTITY_INSERT TABLE OFF ;
Кан
источник
0

вот решение

Insert into TableName Default values;
select Scope_identity();
Мухаммед Джавад
источник