【发布时间】:2022-01-04 00:43:17
【问题描述】:
我有一个名为 Players 的表,其中包含这些列
Id, Name, Age
Id 和 Age 是整数,Name 是 char(50)。
我想在这个表上创建一个聚集索引,以便该表将按Name 升序排序。我发现每个有主键的表在主键上都已经有一个聚集索引,而一个表上只能有一个聚集索引,如果我想添加另一个,我必须删除主键Id 上的约束。
我的Player.Id 已经作为多个其他表中的外键,所以我仍然希望对Id 进行主键约束,但我还想要一个聚集索引来按名称对记录进行排序。
如何在 SQL Server 中做到这一点?我正在使用 Microsoft SQL Server Management Studio。
【问题讨论】:
-
你为什么要
Name的索引,你是按那个列查找的吗?您要支持哪些查询?在您看来,为什么它需要聚集,为什么不能是非聚集索引?这并不是说这都是一个坏主意,它可能是一个好主意,但我不知道你的用例。总而言之:您必须删除并重新创建主键才能将其更改为非集群,以便您可以集群在不同的键上
标签: sql-server ssms