SQL Server изменяет вычисляемый столбец

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%;
}

Например:

source

8
задан YonahW 17 October 2008 в 03:11
поделиться

3 ответа

Не то, чтобы я знаю о, но вот что-то, что можно сделать

добавьте, что другой столбец к таблице обновляет тот столбец со значениями вычисляемого столбца, затем отбрасывают вычисляемый столбец

9
ответ дан 5 December 2019 в 15:28
поделиться

Хорошо, таким образом позвольте мне видеть, получил ли я это прямо. Вы хотите взять столбец, который в настоящее время вычисляется, и сделайте его простым-jane столбцом данных. Обычно это отбросило бы столбец, но Вы хотите сохранить данные в столбце.

  1. Сделайте новую таблицу со столбцами первичного ключа из Вашей исходной таблицы и сгенерированным столбцом.
  2. Скопируйте данные из своей исходной таблицы в новую таблицу.
  3. Измените столбец на своей исходной таблице.
  4. Скопируйте данные назад.

То независимо от того, что Вы делаете я - вполне уверенное изменение столбца, отбросит его. Этот путь немного более сложен, но не, что плохо и он сохраняет Ваши данные.

[Редактирование: ответ @SqlMenace намного легче.:) Прокляните Вас Угроза!!:)]

1
ответ дан 5 December 2019 в 15:28
поделиться

Если необходимо поддержать название столбца (чтобы не взломать клиентский код), необходимо будет отбросить столбец и добавить назад сохраненный столбец с тем же именем. Можно сделать это без времени простоя путем внесения изменений (вроде решения SQLMENACE) в единственной транзакции. Вот некоторый псевдокод:

begin transaction
   drop computed colum X
   add stored column X
   populate column using the old formula
commit transaction
1
ответ дан 5 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: