Команда для добавления ограничения по умолчанию - PullRequest
76 голосов
/ 29 ноября 2010

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

95 голосов
/ 29 ноября 2010

В значительной степени, да для 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;
...