在列的值和其他列的值之间为 UK 添加约束检查
Posted
技术标签:
【中文标题】在列的值和其他列的值之间为 UK 添加约束检查【英文标题】:Add Constraint Check for UK between a Value of a Column and other Column 【发布时间】:2011-12-08 10:32:48 【问题描述】:这是我的目标表
T1
(
Id int not null PK,
Name nvarchar(10) not null
Flag bit not null
)
我需要一个约束检查以检查在具有相同名称的每一行中只有一行有一个真正的标志,换句话说,我需要一个英国来表示(1-真正的标志值,2-名称),相同的名称可以有一个错误标志,但其中一个可以有一个真标志。有人知道这个脚本吗?
【问题讨论】:
UNIQUE constraint controlled by a bit column的可能重复 (还有许多其他人 - 令人惊讶的是,人们发现有多少种方法可以问这个问题而不会绊倒现有的问题) @Damien_The_Unbeliever:我们需要一个更好的问题和答案唯一标识符;) 【参考方案1】:使用过滤的唯一索引
CREATE UNIQUE NONCLUSTERED INDEX ix ON T1(Name) WHERE (Flag = 1)
【讨论】:
如何在 Alter Table 脚本中做到这一点? @dotNetist - 你没有。过滤索引是使用CREATE INDEX
而不是ALTER TABLE
创建的以上是关于在列的值和其他列的值之间为 UK 添加约束检查的主要内容,如果未能解决你的问题,请参考以下文章