Я обнаружил, что некоторые дополнительные шаги должны быть добавлены к ответу, заданному Storm, поскольку существуют некоторые моменты, например ... перед удалением кластеризованного индекса публикацию необходимо отбросить, поскольку она не позволит кластерному индексу получить отброшенный до этого, и после отбрасывания эти схемы разделов и функции разделов должны быть воссозданы, и публикация также должна быть начата снова.
Примечание. Я использую SQL 2012
Первичный ключ обычно является наиболее часто используемым кластерным ограничением, поэтому, где бы я ни использовал первичный ключ, учтите, что эти шаги также применимы и к кластерным ограничениям. Кроме того, PS = Схема разделения, PF = Функция разделения.
Некоторые подготовительные шаги:
- Создать скрипт публикации капли
- Создание сценария создания публикации
- Определите все таблицы, у которых есть зависимости со Схемой разбиения, а также запишите их первичный ключ / кластерный индекс. Также запишите все поля, которые использует столбец первичного ключа (лучше создать сценарий для первичного ключа или кластерного индекса). )
- Создайте скрипт для таблиц, на которые влияют.
- Сделайте скрипт для PF и PS, которые находятся под вопросом.
Все вышеперечисленное с использованием SQL Management Studio «генерировать скрипты» при щелчке правой кнопкой мыши. И выберите падение и создайте.
Теперь, когда все готово.
1. Удалите публикацию (используйте созданный вами скрипт)
2. Удалите ограничение Первичный ключ тех таблиц, которые связаны с PS.
alter table [tablename] drop constraint [pk_name]
3. Установите фиктивное ограничение, но используйте те же поля, которые вы использовали в этом удаленном первичном ключе. CREATE CLUSTERED INDEX CIDX_X1 ON tablename(field1,field2,field3,field4) ON [PRIMARY]
4. сбросьте схему и функцию разбиения.
DROP PARTITION SCHEME [PartitionSchemeName_PS]
GO
DROP PARTITION FUNCTION [PartitionfunctionName_PF]
GO
- Бросить указатель пустышки
DROP INDEX CIDX_X1 ON tablename
- Добавьте обратно ограничение Кластерный индекс / первичный ключ (используя созданные сценарии, как упоминалось ранее.
- Создание функции Разделения и Схемы Разделения (убедитесь, что количество элементов PS> PF., Где PS = PF + 2 элемента)
- Добавить обратно издателя (использовать сгенерированные скрипты)