我在表格中有一个CustomerID列和一个EffectiveDate列。
我需要这两者的组合才是独一无二的。
但是,我已经在自动编号的整数列上有一个主键。
实现目标的好方法是什么?
由于
答案 0 :(得分:7)
只需添加一个唯一约束:
Alter Table TableName
Add Constraint UC_TableName_Col1Col2 Unique ( Col1, Col2 )
在创建唯一约束时,SQL Server会创建唯一索引。如果已存在聚簇索引,则上述内容将创建该索引为非聚簇索引。但是,您可以这样明确:
Alter Table TableName
Add Constraint UC_TableName_Col1Col2 Unique Nonclustered ( Col1, Col2 )
答案 1 :(得分:3)
CREATE UNIQUE INDEX Some_Index_Name ON My_Table (CustomerID, EffectiveDate)
答案 2 :(得分:1)
尝试在两列上创建UNIQUE索引。
CREATE TABLE Example
(Col1 int NOT NULL,
Col2 int NOT NULL,
UNIQUE (Col1, Col2)
)
取自this thread。
的示例答案 3 :(得分:1)
CREATE TABLE MyTable
(
<columns here>
CONSTRAINT U_ConstraintName UNIQUE (CustomerID, EffectiveDate)
)