代码之家  ›  专栏  ›  技术社区  ›  Jeremy

如何在sql server中实施此约束

  •  1
  • Jeremy  · 技术社区  · 14 年前

    例如,以下记录在概念上是相同的:

    id    fromcity_id  tocity_id
    1     100          200
    2     200          100
    
    3 回复  |  直到 14 年前
        1
  •  1
  •   D'Arcy Rittich    14 年前

    这将需要一个触发器,因为您需要检查其他行。另外,您可以在应用程序层执行此操作。

        2
  •  1
  •   Callie J    14 年前

    另一个选择是创建一个索引视图,该视图上有一个唯一的约束(很可怕,但也可以这样做)。视图类似于:

    CREATE VIEW vwSomeView WITH SCHEMABINDING
    AS
        SELECT fromcity_id AS 'C1', tocity_id AS 'C2' FROM city_city
        UNION ALL
        SELECT tocity_id AS 'C1', fromcity_id AS 'C2' FROM city_city
    

    然后在视图上创建唯一索引:

    CREATE UNIQUE INDEX UIX_vwSomeView ON vwSomeView (C1, C2)
    

        3
  •  0
  •   A-K    14 年前