sql-server - 在非聚集主键索引中包含附加列

标签 sql-server sql-server-2008

我已将表上的主键定义为非聚集。对于通过创建非聚集索引显式创建的非聚集索引,可以包含其他(非索引)列。隐式创建的主键非聚集索引也可以这样吗?

最佳答案

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/

相关文章:

sql - OLE DB 提供程序 "ADSDSOObject"尚未在 Azure SQL 托管实例中注册

sql - 多个 id 的更新语句

sql-server - SQL 服务器 : when it's neccessary to use functions/procedures and not queries?

sql - 索引 View 的两列上的唯一聚集索引

java - 如何为每个 sql 记录创建单独的输出文件?

sql - 对非数值数据使用数据透视

sql-server - 了解 SQL Server 审计和 .sqlaudit 日志文件

sql - SQL Server 中多个位字段的索引

java - 在 MS SQL 服务器上恢复 .bak

sql - 过滤SQL查询返回的结果