gpt4 book ai didi

sql - 由位列控制的 UNIQUE 约束

转载 作者:行者123 更新时间:2023-12-02 17:17:35 25 4
gpt4 key购买 nike

我有一张 table ,类似于

FieldsOnForms(
FieldID int (FK_Fields)
FormID int (FK_Forms)
isDeleted bit
)

该对 (FieldID,FormID) 应该是唯一的,但前提是该行未被删除 (isDeleted=0)。

是否可以在 SQLServer 2008 中定义这样的约束? (不使用触发器)

附注将 (FieldID、FormID、isDeleted) 设置为唯一会增加将一行标记为已删除的可能性,但我希望有机会将 n 行(每个 FieldID、FormID)设置为 isDeleted = 1,并且只有一个已删除 = 0

最佳答案

您可以使用 SQL Server 2008 filtered indexes 拥有唯一的索引功能,或者您可以对 View 应用 UNIQUE 索引(穷人的过滤索引,适用于早期版本),但您不能拥有您所描述的 UNIQUE 约束。

过滤索引的示例:

 CREATE UNIQUE NONCLUSTERED INDEX IX_FieldsOnForms_NonDeletedUnique ON FieldsOnForms (FieldID,FormID) WHERE isDeleted=0

关于sql - 由位列控制的 UNIQUE 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com