Около 20 таблиц разделены на месячной основе. Все они имеют столбец даты, как ключ раздела. Пока все хорошо, но на многие секционированные таблицы ссылается один или несколько внешних ключей. Это мешает мне сделать раздел «Отключение + удаление». Поскольку SQL Сервер выдает ошибку:
Msg 50000, Уровень 16, Состояние 1, Процедура HandleError, Строка 26 [Batch Start Line 0]
На таблицу нельзя ссылаться по ограничению внешнего ключа.
Существует возможность удалить ограничения перед выключением и воссоздать их после выключения, как вы можете видеть на скриншоте, есть много FK. Другой вариант - выполнить оператор delete для каждой таблицы, на которую влияют, перед удалением самого старого раздела. Но это займет время, потому что мы говорим о миллионах записей / разделах.
В Oracle это, похоже, не проблема. Как только Oracle увидит, что больше нет ссылок с FK на PK, раздел может быть удален. В SQL сервера нет. Я попробовал это, просто чтобы быть уверенным.
У кого-нибудь есть лучшая идея, как решить эту проблему изящным способом?
![Picture with all partitioned tables with their reference constraints](https://i.stack.imgur.com/UX5gz.jpg)