Как преобразовать кластеризованный первичный ключ в некластеризованный, не отбрасывая отсылающий внешние ключи в SQL Server 2005

Я сделал ошибку, создающую кластеризируемый первичный ключ на столбце GUID. Существует много таблиц что ссылка что таблица с определенными внешними ключами. Размер таблицы не является значительным.

Я хотел бы преобразовать его от кластеризованного до некластеризованного, вручную не отбрасывая и воссоздавая любые внешние ключи или даже ограничение первичного ключа.

Действительно ли возможно достигнуть этого в MS SQL2005 и как если да?

Действительно ли возможно достигнуть этого ОНЛАЙН (без времени простоя дб) если да?

5
задан John Saunders 19 February 2010 в 05:42
поделиться

1 ответ

Вы можете сначала попробовать создать уникальный некластеризованный индекс NC, а затем отбросить кластерный PK. FK должен распознать этот другой индекс (но может и не распознать: никогда не пробовал).

Когда вы запускаете ALTER TABLE для удаления кластерного PK, используйте опцию ONLINE . Однако он доступен только в версии Enterprise.

ALTER TABLE Mytable DROP CONSTRAINT PK_Mytable WITH (ONLINE = ON)

Вы не можете использовать ONLINE для бита ADD CONSTRAINT.

Обычно ваши возможности ограничены без блокировки или создания сначала другой таблицы и переноса данных ...

3
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: