首页 > 数据库 > mysql教程 > 如何确保 SQL Server 表中只有一条记录 isDefault = 1?

如何确保 SQL Server 表中只有一条记录 isDefault = 1?

Mary-Kate Olsen
发布: 2025-01-01 03:20:10
原创
168 人浏览过

How to Ensure Only One Record Has isDefault = 1 in a SQL Server Table?

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

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

解决方案:使用唯一筛选索引

对于 SQL Server 2008 或更高版本,可以使用唯一筛选索引:

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
登录后复制

其中表定义为如下:

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)
登录后复制

插入具有相同 FormID 且 isDefault 设置为 1 的多行将导致以下错误:

Cannot insert duplicate key row in object 'dbo.TableName' with unique
index 'IX_TableName_FormID_isDefault'. The duplicate key value is (1).
登录后复制

以上是如何确保 SQL Server 表中只有一条记录 isDefault = 1?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板