Предположим, у меня есть таблица SQL Server 2005, TableX, с двумя индексами:
PK_TableX = ПЕРВИЧНЫЙ КЛЮЧ, НЕ ВКЛЮЧЕННЫЙ в FieldA
IX_TableX_FieldB = CLUSTERED в поле B
Я хочу переключить PK на CLUSTERED, а другой индекс на NCLCLTERTER.
Я должен предположить, что база данных будет использоваться в тот момент, когда я пытаюсь изменить раунд индексов - поэтому моя главная задача, которой я хочу избежать, заключается в том, что в какой-то момент процесса ограничение PK не будет стол. Я хочу быть защищенным от любого риска вставки дубликатов ключей.
т.е. Я не могу просто сбросить первичный ключ и воссоздать его.
Этот процесс должен выполняться через сценарий SQL, а не через SSMS.
У меня есть подход, который, я думаю, сработает (я опубликую его как потенциальный ответ), но хотел бы открыть его на случай, если я что-то упустил или есть другой / лучший способ. Кроме того, это может оказаться полезным для других в будущем