Firebird Documentation Index → Переход с MS SQL на Firebird → Трюки с SQL |
Этот раздел описывает некоторые трюки СУБД Firebird, используемые для эмуляции поведения СУБД MS SQL и для исключения «обходных путей» СУБД MS SQL.
Версии СУБД MS SQL до 2000 не поддерживают каскадные обновления и удаления. Ссылочные ключи при изменениях всегда откатывались (rolled back).
В СУБД MS SQL указанная проблема решается комбинированием хранимых процедур и триггеров, и вместе с тем исключается явная декларация ссылочной целостности (foreign key). В свою очередь, такое поведение делает ссылочную целостность неявной вместо наличия явно декларируемой ссылочной целостности, а это означает, что различные утилиты не смогут распознавать наличие отношений между таблицами и работать с этими отношениями.
При переносе базы данных все такие «обходные пути» могут быть опущены - СУБД Firebird полностью поддерживает каскадные обновления и удаления через декларативную ссылочную целостность. (СУБД Firebird до версии 2.0 имеет проблемы с индексами с низкой селективностью, которые часто образуются и используются в реализации декларативной ссылочной целостности, и ситуация с которыми усугубляется нежелательностью создания параллельных индексов с хорошей селективностью во избежание введения оптимизатора в заблуждение. Версия 2.0 решает эту проблему. - прим. перев.)
Версии СУБД MS SQL до 2000 не поддерживали полностью обновления для представлений, основанных на соединениях. Это было основным вопросом, так как представления обычно считались необновляемыми («только для чтения»); существовало некоторое количество ограничений, чтобы сделать такие представления обновляемыми.
В СУБД Firebird также существуют некоторые ограничения, но эти ограничения рассматриваются только для автоматического обновления. Если СУБД не в состоянии самостоятельно произвести обновления, Вы можете создать триггеры для представления, чтобы реализовать необходимую логику работы.
Firebird Documentation Index → Переход с MS SQL на Firebird → Трюки с SQL |