我已将表上的主键定义为非聚集
。对于通过创建非聚集索引
显式创建的非聚集索引,可以包含其他(非索引)列。隐式创建的主键非聚集索引也可以这样吗?
最佳答案
INCLUDE 列的语法仅适用于 CREATE NONCLUSTERED INDEX ,具体来说
INCLUDE (column [ ,... n ] ) Specifies the non-key columns to be added to the leaf level of the nonclustered index. The nonclustered index can be unique or non-unique.
它是否不可用于添加约束,因此您不能包含任何具有主键的列,即使它是非聚集的。
主键可用作记录的唯一标识符,并且是可用于 REFERENTIAL 约束的候选键。但是,出于性能原因,如果您在另一列上有一个集群键,并且没有其他候选键可作为 PK 进行提升,则您始终可以创建一个附加非主键列上的聚集索引并将其他列包含到索引中。
关于sql-server - 在非聚集主键索引中包含附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15830099/