假设有一个名为Emails的表
CREATE TABLE Emails (
ID nvarchar(40) NOT NULL,
Link_ID int NOT NULL,
GROUP int NOT NULL,
Email nvarchar(100) NOT NULL)
和一个名为Info的表
CREATE TABLE Info (
CUST_ID int NOT NULL,
Link_ID int NOT NULL)
这是表的简化视图,我无法更改它们的列。
我的目标是:
允许:
Cust_ID Group Email
1 0 test1@allowed.com
1 1 test1@allowed.com
禁止:
Cust_ID Group Email
1 0 test2@forbidden.com
1 0 test2@forbidden.com
Cust_ID Group Email
1 0 test3@forbidden.com
2 1 test3@forbidden.com
Cust_ID Group Email
1 0 test4@forbidden.com
2 0 test4@forbidden.com
如何在MSSQL 2014中实现这种独特性?
编辑: 我的目标是这样的:
答案 0 :(得分:2)
您不能直接在多个表上设置UNIQUE
约束,我建议您可以采用以下一种方法。
IF EXISTS
检查是否允许数据。Indexed View
并对其施加唯一约束。我的建议是,创建索引视图并放置所需的约束。要了解更多信息,可以查看Enforcing Complex Constraints with Indexed Views