В T-SQL, как вставить новую строку со всеми значениями по умолчанию?

в базе данных Microsoft SQL у меня есть таблица, где каждый столбец имеет значения по умолчанию (фиксированные значения или вещи, такие как identity или getdate()).

Я пытаюсь написать инструкцию SQL, которая вставит новую строку, в которой каждая ячейка будет иметь значение по умолчанию.

ни

insert into MySchema.MyTable

, ни

insert into MySchema.MyTable () values ()

является допустимым синтаксисом.

Итак, можно ли вставить новую строку без указания какого-либо значения?

2 ответов


insert into foo DEFAULT VALUES


стандартный SQL

INSERT INTO tablename VALUES ( DEFAULT, DEFAULT, DEFAULT... )

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

синтаксис является частью стандарта SQL, и работает на большинстве баз данных с 2005 года:

(простые базы данных, такие как SQLite или Access, обычно не поддерживают этот "новый" или "расширенный" синтаксис.)

Нестандартное

INSERT INTO tablename DEFAULT VALUES

это вставит новую строку, заполняющую все со значениями по умолчанию.

насколько я знаю, этот синтаксис нестандартен, и немногие базы данных поддерживают его - я знаю только MS SQL и PostgreSQL. Хотя я лично не использую его, я вижу вариант использования, и он может быть сделан стандартным, как DEFAULT поля в будущем.