答案 0 :(得分:0)
您希望在3列上创建唯一约束:AddressID,Primary,EndDate。
ALTER TABLE [YourTableName]
ADD CONSTRAINT [UniqueConstraintName] UNIQUE (AddressID, Primary, EndDate);
答案 1 :(得分:0)
这里你需要的是一个独特的索引,而不是约束;可以过滤索引,但约束不能。请尝试下面的索引创建脚本,让我知道它是怎么回事 另一点,你有一个名为PRIMARY的字段,它是SQL Server中的保留字;虽然您可以通过将字段名称括在方括号中来绕过语法问题(正如我在下面的索引脚本中所做的那样),但是如果可能的话,您可能希望尽量避免使用该命名约定。
CREATE UNIQUE INDEX idx_max_address_id
ON myTable (PK, AddressId)
WHERE [PRIMARY] = 'TRUE'
AND EndDate = '12/31/9999'