多个主键

时间:2011-03-03 19:54:53

标签: sql sql-server database

当我执行“sp_help tableName”时,我看到一个约束,其中显示“Primary Key(clustered)”,它列出了标题'constraint_keys'下的三列。

这是否意味着这些列值中的任何一个都将唯一地标识该行,或者所有三列的值一起唯一地标识该行?

3 个答案:

答案 0 :(得分:6)

这意味着所有三列组合在一起形成一个唯一的行。只要组合是唯一的,任何单个列都可以有重复。

答案 1 :(得分:4)

所有三个都是主键。

这在概念上类似于索引多个字段的覆盖索引。

答案 2 :(得分:2)

这意味着所有三个都将唯一标识任何特定条目。

例如,假设您有一个“订单”表,其中包含以下字段:

订单: customerID PK DateTime PK 的OrderTotal

由于同一个customerID在Orders表中可能有多个条目,因此您无法单独使用它来唯一标识单个订单。也可能有多个订单同时发生(来自不同的托管人),因此不能单独使用DateTime字段。

但是,组合这两个字段将为您提供唯一标识单个条目的方法。