Member 9346617 Ответов: 2

Как отбросить кластеризованный индекс, который автоматически создается в столбце первичного ключа, но сохраняет ограничение первичного ключа для этого столбца таким, как оно есть ?


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

Что я уже пробовал:

Я попытался отбросить кластеризованный индекс, который был создан на первичном ключе.
Но это дало мне ниже ошибку :
Явный индекс отбрасывания не допускается для индекса 't1.PK__t1__3214EC070AD2A005'. Он используется для принудительного применения ограничений первичного ключа.

2 Ответов

Рейтинг:
0

Patrice T

Цитата:
Явный индекс отбрасывания не допускается для индекса 't1.PK__t1__3214EC070AD2A005'. Он используется для принудительного применения ограничений первичного ключа.

Сообщение об ошибке говорит вам, почему вы не можете удалить индекс первичного ключа.

Почему это проблема-использовать некластеризованный индекс в другом столбце ?


Рейтинг:
0

0x01AA

На данный момент я вижу только следующую последовательность для решения вашего запроса на базу данных _non empty_:

1. Drop foreign key constraint(s) referencing the Primary, N times
   ALTER TABLE Detail DROP CONSTRAINT FK_Detail_Master;
2. ALTER TABLE Master DROP CONSTRAINT PK_Master;
3. ALTER TABLE Master ADD CONSTRAINT PK_Master PRIMARY KEY NONCLUSTERED (Id);
4. Recreate foreign key constraint(s), N times
   ALTER TABLE Detail ADD CONSTRAINT FK_Detail_Master FOREIGN KEY (Master_Id) REFERENCES Master (Id);

Надеюсь, это поможет.