Я хочу отключить все ограничения внешнего ключа и снова включить их после этого, есть ли способ сделать это?
Я знаю, что SQLServer это позволяет, но как насчет Firebird?
Я хочу отключить все ограничения внешнего ключа и снова включить их после этого, есть ли способ сделать это?
Я знаю, что SQLServer это позволяет, но как насчет Firebird?
Внешние ключи AFAICT не могут быть отключены в Firebird до версии 2.1.
Вам придется их удалить и создать заново.
Существует похожая тема на Devshed.
Я думаю, единственный способ - удалить их, а затем воссоздать. Поскольку ограничения не являются данными, вы действительно не теряете никакой информации из базы данных, так что это безвредная операция (при условии, что вы сохраните скрипт для их последующего воссоздания).
Версия FlameRobin в репозитории SVN имеет возможность автоматически генерировать эти сценарии DROP и CREATE для выбранных зависимостей столбцов таблицы. В последнем официальном релизе есть такая же опция для целых таблиц, так что это может вам помочь. Однако нет возможности сделать это для всей базы данных. Может другой админ. инструмент имеет эту функцию.