仅对一条标记为默认记录的约束

我如何在表上设置约束,以便只有一条记录的isDefault位字段设置为1

约束不是表范围,而是由FormID指定的每组行的一个默认值

使用唯一的筛选索引

在SQL Server 2008或更高版本上,您只需使用唯一的筛选索引

创建唯一索引IX\u TableName\u FormID\u isDefault
关于TableName(FormID)
其中isDefault=1

桌子在哪里

创建表TableName(
FormID INT不为空,
isDefault位不为空
)

例如,如果您尝试插入多个具有相同FormIDisDefault设置为1的行,则会出现以下错误:

无法在具有唯一性的对象“dbo.TableName”中插入重复的键行
索引“IX_TableName_FormID_isDefault”。重复的键值为(1)

资料来源:http://technet.microsoft.com/en-us/library/cc280372.aspx

发表评论