Можно ли создать именованное ограничение по умолчанию в операторе добавления столбца в SQL Server? - PullRequest
129 голосов
/ 22 сентября 2010

В SQL Server у меня есть новый столбец в таблице:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

Это не удается, поскольку я указываю NOT NULL без указания ограничения по умолчанию.Таблица не должна иметь ограничение по умолчанию.

Чтобы обойти это, я мог бы создать таблицу с ограничением по умолчанию, а затем удалить ее.

Однако, похоже, нет никакого способа указать, что ограничение по умолчанию должно быть названо как часть этого оператора, так что мой единственный способ избавиться от него - это иметь хранимую процедуру, которая его смотритвверх в таблице sys.default_constraints.

Это немного запутанно / многословно для операции, которая, вероятно, часто случается.У кого-нибудь есть лучшие решения для этого?

Ответы [ 2 ]

189 голосов
/ 22 сентября 2010

Это должно работать:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL
82 голосов
/ 22 сентября 2010
ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
...