Как удалить кластерное свойство, но сохранить первичный ключ в таблице. SQL Server 2005

У меня есть следующий ключ:

ALTER TABLE dbo.Table ADD  CONSTRAINT PK_ID PRIMARY KEY CLUSTERED 
(
ID ASC
)

поэтому у меня есть кластерный индекс и первичный ключ в столбце Идентификатор. Теперь мне нужно удалить кластерный индекс (я хочу создать новый кластеризованный индекс в другом столбце), но сохранить первичный ключ. Возможно ли это?

Ответы

Ответ 1

Это невозможно в одном из утверждений, но поскольку DDL является транзакционным в MSSQL, вы можете просто сделать все внутри транзакции, чтобы другие сеансы не обращались к таблице, в то время как у нее нет первичного ключа:

begin tran
alter table dbo.[Table] drop constraint pk_id
alter table dbo.[Table] add constraint pk_id primary key nonclustered (id)
commit tran

Ответ 2

Это невозможно, так как индекс является физической реализацией ограничения.