Как вставить в таблицу только столбец 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 ;

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.