Могу ли я создать ограничение по умолчанию для имени в SQL Server?

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

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

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

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

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

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

Ответ 1

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

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

Ответ 2

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)

Ответ 3

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