Команда для добавления ограничения по умолчанию

82

Кажется, есть как минимум два способа добавить ограничение по умолчанию, используя прямой T-SQL. Правильно ли я, что единственное различие между двумя нижеприведенными состоит в том, что второй метод специально создает имя для ограничения, а первый метод имеет имя, созданное SQL Server?

ALTER TABLE [Common].[PropertySetting] ADD DEFAULT ((1)) FOR [Active];
ALTER TABLE [Common].[PropertySetting] ADD CONSTRAINT [DF_PropertySetting_Active) DEFAULT ((1)) FOR [Active];
Рэнди Миндер
источник

Ответы:

105

В значительной степени да для ALTER TABLE

Вы также можете добавить столбец по умолчанию за один шаг для CREATE или ALTER.

ALTER TABLE foo ADD bar varchar(100) CONSTRAINT DF_Foo_Bar DEFAULT ('bicycle')
ALTER TABLE foo ADD bar varchar(100) DEFAULT ('bicycle')

Как вы отметили, система генерирует имя, если оно не указано. CONSTRAINT constraint_nameне является обязательным, говорит MSDN. То же самое относится к любому столбцу или таблице CONSTRAINT.

Изменить Если столбец уже был создан, и вы хотите только добавить использование ограничения:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName;
gbn
источник
3
Могу ли я использовать сгенерированное имя вместо DF_Foo_Bar, даже если столбец уже существует?
slartidan