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

Кажется, существует как минимум два способа добавить ограничение по умолчанию, используя прямой 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];

Ответ 1

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

Вы можете добавить столбец n по умолчанию в один шаг для 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. То же самое относится к любому столбцу или table CONSTRAINT

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

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName;