Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在两列SQL Server上应用唯一约束?_Sql Server - Fatal编程技术网

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

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。我想应用一个唯一的约束,其中名称在每个类型中都是唯一的

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')