В T-SQL, как вставить новую строку со всеми значениями, установленными по умолчанию? - PullRequest
13 голосов
/ 20 июня 2010

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

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

Ни

insert into MySchema.MyTable

ни

insert into MySchema.MyTable () values ()

допустимый синтаксис.

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

Ответы [ 2 ]

25 голосов
/ 20 июня 2010

insert into foo DEFAULT VALUES

0 голосов
/ 26 августа 2014

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

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

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

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

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

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

INSERT INTO tablename DEFAULT VALUES

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...