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

StackOverflow https://stackoverflow.com/questions/3770015

Вопрос

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

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top