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

时间:2012-11-01 08:56:45

标签: sql-server sql-server-2008 unique-constraint

鉴于我有一个表结构,其中我有一个可以拥有“角色”的父级,并且该父级具有可以具有相同“角色”的子级,如何在子表上创建一个用于验证父级的约束没有即将插入的角色?

像这样:

Parent
 |
 \- ParentRoles
 |
 \- Child
    |
    \- ChildRoles

我希望Child和Parent角色的联合是一个唯一角色列表(没有重复)。

我已经检查了Constraint by UserFunction(不推荐但会工作)并尝试使用唯一索引创建视图但遇到了麻烦,因为我必须在视图中使用Union,然后我无法将其编入索引。

关于Constraint by UserFunction问题的回答建议使用外键,但我不明白如何根据我的表结构来完成这项工作。

1 个答案:

答案 0 :(得分:0)

  

如何在子表上创建一个约束来验证父项没有   即将插入的角色?

你不能 - 约束不能那么容易。我会用触发器去。