如何将主键更改为非群集?

Ang*_*ker 30 sql sql-server-2005 alter clustered-index

兼职不情愿的DBA在这里.我想将现有的主键索引从群集更改为非群集.而语法正在逃避我.

这就是它现在的编写方式.

ALTER TABLE [dbo].[Config] WITH NOCHECK ADD 
    CONSTRAINT [PK_Config] PRIMARY KEY  CLUSTERED 
    (
        [ConfigID]
    )  ON [PRIMARY] 
Run Code Online (Sandbox Code Playgroud)

我没有在在线文档中看到ALTER CONSTRAINT语句.

And*_*mar 64

删除聚簇索引,然后将主键重新创建为非聚集:

ALTER TABLE dbo.Config DROP CONSTRAINT PK_Config
go
ALTER TABLE dbo.Config ADD CONSTRAINT PK_Config 
    PRIMARY KEY NONCLUSTERED (ConfigID)
Run Code Online (Sandbox Code Playgroud)

  • 我知道这是一篇旧文章,但是有趣的是,如果索引与主键一起使用并且它已经被另一个表引用,那么您将无法删除它。(至少在 MS SQL Server 中) (2认同)