Единственный способ динамически выбрать, какой столбец или столбцы использовать для оператора DML
, - это использовать динамический SQL. И единственный способ использовать динамический SQL - генерировать оператор SQL, который затем можно подготовить и выполнить. Конечно, вы можете собрать строку более или менее эффективным способом, вы можете потенциально проанализировать инструкцию один раз, выполнить ее несколько раз и т. Д., Чтобы минимизировать затраты на использование динамического SQL. Но использование динамического SQL, который работает почти так же, как статический SQL, требует немного больше работы.
Я бы повторил точку зрения Бена - не похоже, что вы экономите время, структурируя свою таблицу таким образом. Скорее всего, вы получите намного лучшую производительность, если будете правильно нормализовать таблицу. Я не уверен, какое пространство, по вашему мнению, вы экономите, но я склонен сомневаться в том, что денормализация структуры ваших таблиц значительно сэкономит вам, если что-нибудь, с точки зрения пространства.