В SQL Server 2005 можно создать вычисляемый столбец, который будет сохранен и определен как NOT NULL (не может содержать нулевое значение). Второй атрибут важен при использовании таких библиотек, как Linq2Sql, если мы хотим избежать много ручной работы, чтобы гарантировать нашему коду, что столбец «всегда» имеет значение.
С прямым SQL это очень просто:
ALTER TABLE Sales ADD Total AS (Price + Taxes) PERSISTED NOT NULL
При просмотре в окне разработки SQL Server Management studio этот столбец корректно отображается в виде вычисляемого столбца без галочки для «разрешенных нулей». Однако я столкнулся с проблемой создания новых столбцов в конструкторе, чтобы они соответствовали этому шаблону: формула вводится в свойство «Спецификация вычисляемого столбца -> (формула)», а постоянное свойство указывается с помощью параметра «Сохранено» в «Да», но при попытке снять флажок «разрешает пустые значения» в новом вычисляемом столбце приводит к появлению диалогового окна, в котором «свойство не может быть изменено».
Мне нужно охватить широкий диапазон уровней квалификации, и для этого мне нужно предоставить процедуры для добавления столбцов, которым может следовать даже новичок (что означает окно дизайнера Management Studio). Есть ли какой-то секрет в SQL Server Management Studio для создания нового вычисляемого столбца как NOT NULL в конструкторе, подобно тому, как можно использовать CTRL + 0 для вставки нулей в ячейки?