Sql server 如何在两列SQL Server上应用唯一约束?
数据库中有两列type和name。我想应用一个唯一的约束,其中名称在每个类型中都是唯一的Sql server 如何在两列SQL Server上应用唯一约束?,sql-server,Sql Server,数据库中有两列type和name。我想应用一个唯一的约束,其中名称在每个类型中都是唯一的 Type Name A ABC R ABC B ABC 应允许,而 Type Name A ABC A ABC 不应该被允许 如果名称在每个类型中都是唯一的,如何强制执行此约束 谢谢,您可以像这样创建多列唯一约束 ALTER TABLE MyTable ADD UNIQUE (Type, Name) 这将强制执行您描述的规则。在创建表时,您可以执行以
Type Name
A ABC
R ABC
B ABC
应允许,而
Type Name
A ABC
A ABC
不应该被允许
如果名称在每个类型中都是唯一的,如何强制执行此约束
谢谢,您可以像这样创建多列唯一约束
ALTER TABLE MyTable ADD UNIQUE (Type, Name)
这将强制执行您描述的规则。在创建表时,您可以执行以下操作
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)
在那之后,我执行了以下四个。。(最后一次失败)
谢谢,
Jigar检查此项不起作用我希望每个类型中的名称都是唯一的。该名称可以在不同类型中重复。上面的方法不允许不同类型的重复输入。我真的不建议将两个VARCHAR(255)作为任何表的主键。。。
insert into YourTable values('AB','ABD')
insert into YourTable values('AA','ABD')
insert into YourTable values('AA','ABC')
insert into YourTable values('AA','ABD')