2010-11-29 90 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