2010-11-29 8 views
64

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

ответ

85

Довольно много, да для ALTER TABLE

Вы можете добавить columnn с невыполнением в одном шаге для 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. То же самое относится и к любому column или table ОГРАНИЧЕНИЙ

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

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

Могу ли я использовать сгенерированный имя вместо `DF_Foo_Bar `, даже если столбец уже существует? – slartidan 2016-01-29 14:17:10