SQL Server - 根据另一列强制在一列中使用唯一性

时间:2009-01-20 11:29:30

标签: sql-server sql-server-2005 tsql constraints

如果我的术语错误,请道歉。如何在MSSQL Server 2005中定义约束以在一列中强制实现唯一性,具体取决于另一列?

E.g。考虑最后两列:

1    A    1
2    A    2
3    A    2 <- Disallow because '2' has already appeared alongside 'A'
4    B    1
5    B    2

3 个答案:

答案 0 :(得分:7)

试试这个:

CREATE TABLE tTable
    (field1 CHAR(1) NOT NULL,
     field2 INT NOT NULL,
     UNIQUE (field1, field2)
)

答案 1 :(得分:1)

在2列上创建唯一约束?

这是最合乎逻辑的事情,因为看起来这一列不是唯一的,但两列的组合必须是唯一的。

答案 2 :(得分:0)

不需要是主键,只需要一个唯一的复合索引。