2010-11-29 99 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。

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

如您所述,如果没有提供名称,系统会生成一个名称。说MSDN,CONSTRAINT constraint_name是可选的。这同样适用于任何columntable约束

编辑 如果列已经创建的,而您只需要添加约束使用:

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

我可以使用生成的名称,而不是DF_Foo_Bar的` `,即使列已经存在? – slartidan 2016-01-29 14:17:10