对于具有非聚集主键且根本没有聚集索引的产品表:是否可以使用ALTER INDEX..REBUILD(或任何简单方法)将NON CLUSTERED主键更改为CLUSTERED主键?怎样?
我很高兴避免掉,因为还有其他的表限制了我掉产品pk。
编辑
我发现,使用toad for sql server(我有免费的社区版),我可以右键单击一个表,选择alter table,将clustered从false更改为true,然后生成一个可怕但有效的脚本,在其中创建一个新表,复制数据,删除并重新创建/重命名所需的所有内容。
但是,我仍然希望有一个推荐的方法来使用一个特殊的工具

最佳答案

您可以使用DROP_EXISTING = ON选项创建聚集索引。如果愿意,也可以这样创建主键。

BEGIN TRAN

SELECT *
INTO o
FROM sys.objects

CREATE UNIQUE NONCLUSTERED INDEX sjhfg ON o (object_ID)
CREATE UNIQUE CLUSTERED INDEX sjhfg ON o (object_ID) WITH (DROP_EXISTING = ON)

SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID('o')

ROLLBACK

10-06 05:16
查看更多