SQL Server: изменение файловой группы индекса (который также является PK) - PullRequest
2 голосов
/ 10 февраля 2011

Мы выполняем очистку для группы баз данных, и первый шаг - получить все индексы в базе данных в правильных файловых группах.

В настоящее время эти индексы смешиваются между файловой группой DATA иINDEXES файловая группа;все они должны перейти в файловую группу INDEXES.

Это может быть сделано достаточно легко в сценарии, я думаю, однако, как вам лучше всего обрабатывать индекс первичного ключа?

Следующая команда

DROP INDEX table.indexname

выдает ошибку:

Явный индекс DROP INDEX недопустим для индекса 'Answer.PK_Answer'.Он используется для принудительного применения ограничения PRIMARY KEY.

Так каков наилучший способ?Нужно ли удалять первичный ключ, затем индекс, затем заново создавать первичный ключ и, наконец, заново создать индекс в правильной файловой группе?Есть ли недостатки этого метода?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2013

Поскольку у него есть первичный ключ:

СОЗДАТЬ УНИКАЛЬНЫЙ КЛАСТЕРНЫЙ ИНДЕКС PK_Answer ON имя таблицы (ответ) WITH (DROP_EXISTING = ON);

0 голосов
/ 26 марта 2014

Если кому-то еще понадобилась эта информация (я это сделал), добавьте FILEGROUP в конце, если хотите переместить воссозданный ПЕРВИЧНЫЙ КЛЮЧ в другое место. Ни один из предыдущих ответов не предусматривал эту часть:

CREATE UNIQUE CLUSTERED INDEX PK_TableName_Answer ON TableName(Answer) WITH(DROP_EXISTING = ON) ON [INDEX];
0 голосов
/ 24 марта 2011

Вы можете попробовать приведенный ниже оператор, который удаляет и воссоздает индекс в файловой группе индекса

СОЗДАТЬ КЛАСТЕРНЫЙ ИНДЕКС PK_Answer НА табличном имени (ответ) WITH (DROP_EXISTING = ON);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...