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