如何在两列SQL Server上应用唯一约束?

时间:2012-07-09 05:46:29

标签: sql-server

我在数据库中有两个列类型和名称。我想应用一个唯一约束,其中名称在每种类型中都是唯一的。

Type   Name
 A     ABC
 R     ABC
 B     ABC
应该允许

Type  Name
 A    ABC
 A    ABC

不应该被允许

如何强制执行此约束,其中name在每种类型中都是唯一的?

谢谢,

2 个答案:

答案 0 :(得分:5)

您可以像这样创建一个多列唯一约束

ALTER TABLE MyTable ADD UNIQUE (Type, Name)

这将强制执行您描述的规则。

答案 1 :(得分:0)

创建表格时,您可以

CREATE TABLE YourTable(
  Name VARCHAR(255) NOT NULL,
  Type   VARCHAR(255) NOT NULL,
  PRIMARY KEY (Type, Name)
)

或者您可以使用

更改表格
ALTER TABLE YourTable ADD PRIMARY KEY (Type, Name)

之后我执行了以下四个...(最后一个失败)

insert into YourTable values('AB','ABD')
insert into YourTable values('AA','ABD')
insert into YourTable values('AA','ABC')
insert into YourTable values('AA','ABD')

谢谢, Jigar