Я создаю сценарий загрузки скользящего окна, и функции разделов будут со временем менять свои границы.
Я создал некоторые функции секционирования в моем проекте базы данных SQL Server Data Tools (SSDT) с жестко заданными начальными границами.
Однако с течением времени и изменением границ функций раздела будущие публикации базы данных SSDT вернут границы к исходным.
Есть ли способ изящно обработать этот сценарий, возможно, отключив публикацию функций раздела?
Я попытался изменить свойство Build Action функций раздела в SSDT со значения по умолчанию Build
на None
, но затем проект не удается построить из-за отсутствия ссылки в зависимых объектах.
sql-server
gonsalu
источник
источник
Ответы:
Я смог найти решение своей проблемы - надеюсь, это поможет кому-то еще.
Чтобы избежать каждой публикации базы данных, воссоздающей функцию раздела, вы можете выбрать опцию Игнорировать схемы разделов в диалоговом окне « Дополнительные параметры публикации » ( кнопка « Дополнительно ...» в диалоговом окне «Публикация базы данных»).
Из описания варианта (выделение мое):
Однако, если вы определили многораздельный объект (таблицу или индекс) со сжатием страниц или строк, хотя опция Игнорировать схемы секций больше не воссоздает функцию секционирования, секционированный объект все равно будет воссоздан заново.
Это происходит из-за того, что для секционированного объекта выполняется сценарий со сжатием, определенным для каждого раздела , и, поскольку количество объектов в нем отличается от того, которое было первоначально определено, SSDT воссоздает объект при публикации. Например (в формате):
Чтобы этого не произошло, вы также можете проверить опцию Игнорировать параметры таблицы в том же диалоговом окне « Дополнительные параметры публикации » - просто имейте в виду, что вы будете игнорировать другие параметры, такие как
ALLOW_ROW_LOCKS
иALLOW_PAGE_LOCKS
( ссылка на параметры таблицы ).источник
Ой, это не очень хорошая ситуация. Насколько я знаю, SSDT не поддерживает это. Лучший обходной путь, который я могу придумать, - это использовать сценарий перед развертыванием, чтобы сохранить границы в таблице, а затем изменить функцию разделения, используя эти значения в сценарии после развертывания.
источник