添加默认约束的命令

Posted

技术标签:

【中文标题】添加默认约束的命令【英文标题】:Command for adding a default constraint 【发布时间】:2011-05-17 11:08:10 【问题描述】:

似乎至少有两种方法可以使用直接 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 来说是的

您也可以在一步中为 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 CONSTRAINT

编辑 如果该列已创建,并且您只想添加约束,请使用:

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

【讨论】:

我可以使用生成的名称代替DF_Foo_Bar,即使该列已经存在?

以上是关于添加默认约束的命令的主要内容,如果未能解决你的问题,请参考以下文章

sql中 增加约束,限制取值的命令

SQLSERVER 如何添加0或1的约束,默认是0

修正或添加字段默认值约束的名称

「MySQL」- 约束详解

如何添加 NOT NULL 约束以及列的默认值?

如何更改具有命名默认约束和命名外键约束的表添加列?