Просто потому, что уровень совместимости установлен на более низкое значение, чем текущая версия, не запрещает вам использовать более новые функции.Все, что он делает - это прекращает принудительное удаление функций, чтобы сохранить обратную совместимость существующего кода.Поскольку вы можете использовать новые типы данных и функции в своей базе данных 2008 года, вы не можете напрямую копировать обратно в 2005 без анализа того, какие новые функции были использованы.
Если вы разрабатываете в 2008 году, а прод - 2005, вам необходимо немедленно прекратить эту практику.В противном случае вы будете тратить много времени на использование новых функций, не осознавая этого, пока не попробуете отправить их на prod.
Изменения в базе данных должны выполняться только с помощью сценариев в целом, так как вы не хотите рисковать удалением и воссозданием таблиц с существующими данными.Также сценарии изменения базы данных должны находиться в системе контроля версий для версии, которую вы развертываете, как и любой другой код.Внесение изменений в скрипты является частью того, что скрипт, который вы затем запускаете на prod, был протестирован на dev и QA.