如果列被声明为NOT NULL UNIQUE CLUSTERED INDEX
,那么它会使PRIMARY KEY
对性能或任何实际的变化做任何改变吗?
它不应该有任何影响。在少数手抄1中,PRIMARY KEY
与UNIQUE KEY
相同,附加条件是所有列都被强制为非NULL。因此,将此列装饰为PRIMARY KEY不应导致实现该表的物理数据结构2的任何更改。
CLUSTERED
是一个完全独立的概念 - 有时与PRIMARY KEY
混为一谈。如果表没有CLUSTERED INDEX
并且添加了PRIMARY KEY
,那么默认情况下,这也将被定义为CLUSTERED INDEX
。但是如果需要的话,这种行为可以被覆盖,而且这两种行为在实践中并没有结合在一起。
1I实际上在这一点上无法想到任何相关的差异,但这只是为了避免挑剔,希望如此。
2聚簇索引和任何非聚簇索引和统计信息。
PRIMARY KEY
不允许null并且必须是唯一的,约束NOT NULL UNIQUE
也可以像PRIMARY KEY
那样将相似的规则应用到列中,但是,你的表只能有一个主键,但可能有多个NOT NULL UNIQUE
列。
并且通过NOT NULL UNIQUE CLUSTERED INDEX
和PRIMARY KEY
,两者都将按照CLUSTERED INDEX进行存储,排序和结构化,因此在选择,插入,更新或删除的操作性能基础上,应该没有什么不同
唯一的区别可能在于元数据本身。