【问题标题】:Constraint in MS SQLMS SQL 中的约束
【发布时间】:2011-08-01 21:40:52
【问题描述】:

我们有表 Person(Id, Name, Type)Role(Id, Name) 和绑定表 M:NPerson_Role(Person_Id, Role_Id),这意味着“一个人可以拥有一组角色”。

我们想要做的就是在 MS SQL 2008 R2 中拥有一个唯一性约束,该约束具有唯一性

(Person.Name, Person.Type, Person.SetOfRoles)。那就是 (Jack, 1, {A,B})(Jack, 1, {B}) 不是重复的。

如果我们可以使用 Oracle 的预插入触发器,它将解决所有问题。

重要更新:我们使用 MS SQL 和实体框架,我们没有确切的插入 SQL 命令。

【问题讨论】:

    标签: sql sql-server-2008 entity-framework-4 constraints


    【解决方案1】:

    您可以在 Sql Server 中使用 INSTEAD OF TRIGGER。

    CREATE TRIGGER InsteadTrigger on Role
    INSTEAD OF INSERT
    AS
    BEGIN
      INSERT INTO Role
           -- Your logic goes here
           FROM inserted
    END
    GO
    

    【讨论】:

    • 太好了,谢谢,但我们将 MS SQL 与实体框架一起使用,并且我们没有精确的插入 SQL。然后呢???
    • 您知道表的结构,因此您知道inserted 表的外观。你自己说你可以在Oracle中做到这一点。或者使用存储所有数据并包含逻辑的存储过程。
    【解决方案2】:

    使用“INSTEAD OF INSERT”触发器 此处示例:http://weblogs.asp.net/ryanw/archive/2006/02/02/437242.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多