Database Engine позволяет создавать индексы для детерминированных вычисляемых столбцов, где столбцы имеют точные типы данных. (Вычисляемый столбец называется детерминированным, если одни и те же значения всегда возвращаются для одних и тех же данных таблицы.)
Индексированный вычисляемый столбец может быть создан, только если следующие опции в операторе set установлены в значение on (эти опции гарантируют детерминированность столбца):
♦ quoted_identifier;
♦ concat_null_yields_null;
♦ ansi_nulls;
♦ ansi_padding;
♦ ansi_warnings.
Также должна быть установлена в off опция numeric_roundabort.
Если вы создаете кластеризованный индекс для вычисляемого столбца, то значения этого столбца будут физически присутствовать в соответствующих строках таблицы, потому что страницы листьев кластеризованного индекса содержат соответствующие строки данных («Кластеризованные индексы» ранее В этом разделе).
В примере 10.9 показано создание кластеризованного индекса для вычисляемого столбца total из примера 10.8.
После выполнения оператора create clustered index в примере 10.9 вычисляемый столбец total станет физически присутствовать в таблице. Это означает, что все изменения соответствующих столбцов, которые включены в вычисление этого столбца, будут приводить к модификации и значения самого вычисляемого столбца.