sql - 如何强制执行两列约束?

Bri*_*ter 0 sql sql-server-2005 sql-server-2008

我在表中有一个CustomerID列和一个EffectiveDate列.

我需要这两者的组合才是独一无二的.

但是,我已经在自动编号的整数列上有一个主键.

什么是实现目标的好方法?

谢谢

Tho*_*mas 7

只需添加一个唯一约束:

Alter Table TableName
  Add Constraint UC_TableName_Col1Col2 Unique ( Col1, Col2 )
Run Code Online (Sandbox Code Playgroud)

创建唯一约束时,SQL Server会创建唯一索引.如果已存在聚簇索引,则上述内容将创建该索引为非聚簇索引.但是,您可以这样明确:

Alter Table TableName
  Add Constraint UC_TableName_Col1Col2 Unique Nonclustered ( Col1, Col2 )
Run Code Online (Sandbox Code Playgroud)