Как удалить кластерное свойство, но сохранить первичный ключ в таблице. 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
Это невозможно, так как индекс является физической реализацией ограничения.