SCSS - лучшее решение в моем случае; используя атрибут data:
[data-aspect-ratio] {
display: block;
max-width: 100%;
position: relative;
&:before {
content: '';
display: block;
}
> * {
display: block;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
}
[data-aspect-ratio="3:1"]:before {
padding-top: 33.33%;
}
[data-aspect-ratio="2:1"]:before {
padding-top: 50%;
}
[data-aspect-ratio="16:9"]:before {
padding-top: 56.25%;
}
[data-aspect-ratio="3:2"]:before {
padding-top: 66.66%;
}
[data-aspect-ratio="4:3"]:before {
padding-top: 75%;
}
[data-aspect-ratio="1:1"]:before {
padding-top: 100%;
}
[data-aspect-ratio="3:4"]:before {
padding-top: 133.33%;
}
[data-aspect-ratio="2:3"]:before {
padding-top: 150%;
}
[data-aspect-ratio="9:16"]:before {
padding-top: 177.77%;
}
[data-aspect-ratio="1:2"]:before {
padding-top: 200%;
}
[data-aspect-ratio="1:3"]:before {
padding-top: 300%;
}
Например:
Не то, чтобы я знаю о, но вот что-то, что можно сделать
добавьте, что другой столбец к таблице обновляет тот столбец со значениями вычисляемого столбца, затем отбрасывают вычисляемый столбец
Хорошо, таким образом позвольте мне видеть, получил ли я это прямо. Вы хотите взять столбец, который в настоящее время вычисляется, и сделайте его простым-jane столбцом данных. Обычно это отбросило бы столбец, но Вы хотите сохранить данные в столбце.
То независимо от того, что Вы делаете я - вполне уверенное изменение столбца, отбросит его. Этот путь немного более сложен, но не, что плохо и он сохраняет Ваши данные.
[Редактирование: ответ @SqlMenace намного легче.:) Прокляните Вас Угроза!!:)]
Если необходимо поддержать название столбца (чтобы не взломать клиентский код), необходимо будет отбросить столбец и добавить назад сохраненный столбец с тем же именем. Можно сделать это без времени простоя путем внесения изменений (вроде решения SQLMENACE) в единственной транзакции. Вот некоторый псевдокод:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction