Вы можете определить столбец следующим образом:
ComputedColumn as (case when Period like concat('%', year(getdate()), '%')
then AnswerA else AnswerB
end)
ComputedColumn
вычисляется при извлечении данных из таблицы.Итак, когда меняется год, значение также меняется.
Я не уверен, что означает «редактируемый».Значение по умолчанию для столбца не может содержать ссылки на столбцы (может быть способ обойти это с помощью пользовательских функций, но это выглядит как перебор).
Поскольку данные всегда вставляются в текущем году, вы можете использоватьтриггер для присвоения значения.
Однако, может быть, лучше просто использовать столбец значения переопределения (который можно обновить), а затем:
OverrideValue char(1),
ComputedColumn as (case when OverrideValue is not null
then OverrideValue
when Period like concat('%', year(getdate()), '%')
then AnswerA else AnswerB
end)