【发布时间】:2021-09-16 23:05:03
【问题描述】:
如果我有以下索引:
CREATE UNIQUE NONCLUSTERED INDEX IX_Contacts ON Contacts (User_ID) WHERE (IsDefault=1)
确保设置了IsDefault。
如何同时确保/要求始终设置IsDefault?
你能做这样的事情吗?
CREATE UNIQUE NONCLUSTERED INDEX IX_Contacts ON Contacts (User_ID) WHERE (IsDefault>1)
【问题讨论】:
-
你能设置联系人行的默认值吗?
-
总是设置“
IsDefault'”是什么意思?“允许”数据和“不允许”数据的示例会澄清。 -
确保用于插入或更新语句的值“正确”是应用程序和使用它的人的事情。数据库引擎无法控制——它只能防止“坏”数据存储在表中。在这里,您似乎想要一个过滤的唯一索引来防止每个 User_ID 出现多个“默认”行。请注意,这并不要求每个用户都有一个默认值 - 仅存在一个默认值最多。您混淆了相关但独立的问题。
标签: sql sql-server tsql database-indexes