Подтвердить что ты не робот

С ЦЕНАМИ TSQL

Я пытаюсь понять, что делает оператор WITH VALUES?

Я не могу найти какую-либо документацию, которая объясняет это правильно.

ALTER TABLE Table1 
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid()
with values
4b9b3361

Ответ 2

Когда вы добавляете столбец с нулевым с ограничением по умолчанию в таблицу, тогда все существующие строки получат новый столбец с NULL в качестве значения. Определенные значения по умолчанию будут применены только к новым строкам, если они не имеют значения для этого столбца в инструкции INSERT).

Когда вы укажете WITH VALUES, тогда все существующие строки получат это значение по умолчанию вместо NULL

Если столбец, который вы добавляете в новую таблицу, не-nullable и имеет ограничение по умолчанию, тогда это значение по умолчанию применяется ко всем существующим строкам в таблице автоматически (нет необходимости в WITH VALUES, потому что столбец должен иметь значение, отличное от NULL)

Ответ 3

WITH VALUES - указывает, что значение, указанное в константе DCEFAULT, сохраняется в новом столбце, добавленном к существующим строкам. Если добавленный столбец позволяет указать нулевые значения и WITH VALUES, значение по умолчанию сохраняется в новом столбце, добавленном к существующим строкам. Если WITH VALUES не указывается для столбцов, которые допускают значения NULL, значение NULL сохраняется в новом столбце в существующих строках. Если новый столбец не допускает значения null, значение по умолчанию сохраняется в новых строках независимо от того, указан ли параметр WITH VALUES.