Это вообще ужасная идея.Если ваша схема требует изменений в таблицах, которые должны быть сделаны sp, то они происходят слишком часто, и дизайн должен быть пересмотрен.
Но если вы застряли в этом ужасном процессе (а я не могудостаточно подчеркнуть, что это действительно плохая идея.) тогда вам также необходимо иметь значение ввода для типа данных для данных и значение NULL для размера типа данных, если необходимо, varchar (max) являетсяплохой выбор для каждого возможного столбца, который будет добавлен.Его следует использовать только в том случае, если вы хотите, чтобы в столбце было более 8000 символов для целей индексации.
Почему это плохо?Ну, для начала, вы потеряли контроль над щеной.Люди могут все, и нет обзора, чтобы убедиться, что вы не получите двенадцать версий одних и тех же вещей с незначительно добавленными именами.Далее, как вы собираетесь исправить приложение, чтобы использовать эти поля, не зная, что было добавлено?Поскольку вы никогда не должны возвращать больше полей, чем нужно, ваш рабочий код не должен использовать select *.Поэтому, как вы знаете, какие поля добавить, если ваши пользователи добавили их.Пользователи вообще не достаточно осведомлены, чтобы добавлять поля.Они не понимают структуру или структуру базы данных и не понимают, как нормализовать и настроить производительность.Позволить людям произвольно добавлять поля в таблицы данных недальновидно и приведет к плохо работающим базам данных и неудобным, сложным в использовании интерфейсам, которые раздражают клиентов.Если вы правильно выполнили свою работу по разработке базы данных и приложения, пользователю должно быть очень мало того, что нужно добавить.Если вы основываете свою работу на том, что у пользователя есть возможность добавить гибкость, у вас возникнет катастрофа проекта, который не только будет трудно поддерживать, он будет работать плохо, и в целом ваши пользователи будут его ненавидеть.Я был вынужден работать с некоторыми из этих ужасных коммерческих продуктов (посмотрите на Clarity, если вы хотите, чтобы пример того, как гибкость превзошла дизайн и сделал продукт, который практически непригоден для использования).