Sql server SQL Server:用于验证另一个表中不存在数据的唯一约束

Sql server SQL Server:用于验证另一个表中不存在数据的唯一约束,sql-server,sql-server-2008,unique-constraint,Sql Server,Sql Server 2008,Unique Constraint,考虑到我有一个表结构,其中我有一个可以具有“角色”的父级,并且该父级有可以具有相同“角色”的子级,我如何在子表上创建一个约束,以验证父级不具有将要插入的角色 像这样: Parent | \- ParentRoles | \- Child | \- ChildRoles 我希望子角色和父角色的联合是唯一角色(无重复)的列表 我已经检查过(不推荐,但可以)并尝试创建一个具有唯一索引的视图,但遇到了问题,因为我必须在视图中使用Union,然后我无法为其编制索引 这个问题的答案

考虑到我有一个表结构,其中我有一个可以具有“角色”的父级,并且该父级有可以具有相同“角色”的子级,我如何在子表上创建一个约束,以验证父级不具有将要插入的角色

像这样:

Parent
 |
 \- ParentRoles
 |
 \- Child
    |
    \- ChildRoles
我希望子角色和父角色的联合是唯一角色(无重复)的列表

我已经检查过(不推荐,但可以)并尝试创建一个具有唯一索引的视图,但遇到了问题,因为我必须在视图中使用Union,然后我无法为其编制索引

这个问题的答案建议使用外键,但鉴于我的表结构,我不明白如何才能做到这一点

如何在子表上创建约束以验证父表没有 将要插入的角色


你不能-约束不能轻易做到这一点。我会使用触发器。

约束并不一定意味着SQL Server约束,它可以是任何形式的数据库功能。我只是想让数据库确保插入的数据是正确的。你知道“上下文”这个词吗?“将sql server中的数据限制在约束中”相当残酷地意味着sql server约束。不管怎样,只要使用触发器。