我创建了一个包含两列的简单表,比如Id-1和Id-2。
组合必须是唯一的,但这可以解决,因为它们是主键。
所以1,1 1,2 1,3被照顾。
但是如何避免不允许的组合2,1和1,2以及1,3和3,1?
答案 0 :(得分:1)
创建另外两个基于第一列的最低值计算的列,然后在这两个计算列上放置一个唯一索引。
CREATE TABLE [dbo].[Test1](
[ID1] [int] NOT NULL,
[ID2] [int] NOT NULL,
[ID1A] AS (case when [ID1]<[ID2] then [ID1] else [ID2] end),
[ID2A] AS (case when [ID1]>[ID2] then [ID1] else [ID2] end),
CONSTRAINT [PK_Test1] PRIMARY KEY CLUSTERED
(
[ID1A] ASC,
[ID2A] ASC
)