【问题标题】:SQL Server : Unique constraint to verify that data does not exist in another tableSQL Server:验证数据在另一个表中不存在的唯一约束
【发布时间】:2012-10-21 20:18:42
【问题描述】:

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

像这样:

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

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

我检查了Constraint by UserFunction(不推荐,但可以)并尝试创建一个具有唯一索引的视图,但遇到了麻烦,因为我必须在视图中使用联合,然后我无法索引它。

Constraint by UserFunction 问题的答案建议使用外键,但鉴于我的表结构,我不明白如何才能完成这项工作。

【问题讨论】:

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


    【解决方案1】:

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

    你不能——约束不能轻易地做到这一点。我会选择触发器。

    【讨论】:

    • 约束并不一定意味着 SQL Server 约束,它可以是任何形式的数据库功能。我只是想让数据库确保插入的数据是正确的。
    • 嗯,你知道“上下文”这个词吗? “在约束中限制sql server中的数据”意味着相当残酷的sql server约束。无论如何,只需使用触发器。
    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2015-05-08
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多