很多人把主键和聚集索引混在一起,或者认为这是同一回事,这个概念是非常
错误的。
主键是绑定到索引的约束(约束),它可以是聚合索引或非聚合索引。
因此,在(或组)字段上有主键,只是表示他有索引,但不一定是聚集索引。
例如,以下:
复制代码代码如下所示:
使用{ }
去
创建表# temppkcl
(
聚集的主键——聚合索引
)
---------------------------------
使用{ }
去
创建表# temppkncl
(
ID int主键聚集--非聚集索引
)
表# temppkcl } {
表# temppkncl } {
如果非聚集索引和聚集键不会添加,
默认是建立在聚集索引
在聚合索引中,可以有重复的值。只要不在主键的同时
设置,主键就不能有重复的值,这取决于聚合索引还是非聚集索引。
为了强调这一点,这是因为有些人觉得主键是放在它们的表单上的,并且认为表上有一个聚集索引,它是用B树的方式
管理的。
如果主键不是聚集索引,则可以以堆的方式管理表,且效率较低。
--------------------------------------------------------------------------------
排序和重复值:
排序:当设置复合索引时,指定多个字段,哪些字段
顺序是索引的顺序
它由索引上的第一个字段进行排序。
下列索引的顺序由id字段排序
1创建{ }指数temppkncl_id_ncl dbo。{ temppkncl }({身份},{一},{ })
重复值:如果为多个列定义主键约束,则可以重复列中的值,但主键约束定义中的所有列的任何值组合都必须是唯一的。
如下图所示,在purchasing.productvendor表的ProductID和VendorID列构成一个复合主键约束的表。
这确保ProductID和VendorID组合是独特的
这意味着,如果它是一个复合主键,那么如果ProductID列重复的ProductID和VendorID组合是独特的。
的含义:
(1)主键不是复合主键。
(2)主要的关键是建立在ProductID字段
(3)在ProductID字段的重复值
那么主键肯定会失败。