在 Sql Server (2008) 中,是否可以PRIMARY KEY
在一组列上设置一个而在同一组列上没有CLUSTERED
orNONCLUSTERED
索引?
我知道keyPRIMARY KEY
和CLUSTERED INDEX
key 是不同的概念,我们可以在PRIMARY KEY
没有CLUSTERED INDEX
它的情况下创建(见下文)。
ALTER TABLE dbo.Sample
ADD CONSTRAINT PK_Sample_SeqGUID_Col1 PRIMARY KEY NONCLUSTERED (SeqGUID_Col1)
但我的问题是看看是否可以PRIMARY KEY
在没有CLUSTERED
orNONCLUSTERED
索引的表上创建。
简而言之,不。根据定义,主键需要唯一性,主键字段上的索引是数据库引擎执行此约束的途径。
来自比特币:
不,主键约束总是在 SQL-Server 中通过唯一索引强制执行。索引可以是聚簇的或非聚簇的。如果您不指定哪种类型,则默认
CLUSTERED
为主键。从MSDN 文档中,CREATE TABLE
: