Как установить значение по умолчанию для существующего столбца - PullRequest
334 голосов
/ 22 июля 2011

Это не работает в SQL Server 2008:

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

Ошибка:

Неправильный синтаксис рядом с ключевым словом «SET».

Что я делаю не так?

Ответы [ 13 ]

2 голосов
/ 28 января 2014

Попробуйте следующую команду;

ALTER TABLE Person11
ADD CONSTRAINT col_1_def
DEFAULT 'This is not NULL' FOR Address
1 голос
/ 02 июня 2017

Как и ответ Юка с проверкой, позволяющей запускать сценарий более одного раза без ошибок.(меньше кода / пользовательских строк, чем при использовании information_schema.columns)

IF object_id('DF_SomeName', 'D') IS NULL BEGIN
    Print 'Creating Constraint DF_SomeName'
   ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn;
END
0 голосов
/ 03 июля 2019

Вы можете использовать следующий синтаксис. Для получения дополнительной информации см. Этот вопрос и ответы: Добавьте столбец со значением по умолчанию к существующей таблице в SQL Server

Синтаксис:

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES

Пример:

ALTER TABLE SomeTable
ADD SomeCol Bit NULL --Or NOT NULL.
CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is 
autogenerated.
DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.

Другой способ:

Щелкните правой кнопкой мыши таблицу и выберите «Дизайн», затем щелкните столбец, для которого необходимо установить значение по умолчанию.

Затем в нижней части страницы добавьте значение по умолчанию или привязку: что-то вроде '1' для строки или 1 для int.

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