Вопрос для начинающих по SQL Server:
Я пытаюсь ввести вычисляемый столбец в SQL Server (2008). В дизайнере таблиц SQL Server Management Studio я могу это сделать, но дизайнер предлагает мне только одну ячейку редактирования, чтобы определить выражение для этого столбца. Поскольку мой вычисляемый столбец будет довольно сложным (в зависимости от нескольких полей базы данных и с некоторыми различиями в регистре), я хотел бы иметь более удобный и удобный способ ввода определения столбца (включая разрывы строк для форматирования и т. д.).
Я видел, что есть возможность определять функции в SQL Server (функции скалярного значения или табличного значения). Возможно, лучше определить такую функцию и использовать ее в качестве спецификации столбца? А что за функция (скалярное значение, табличное значение)?
Чтобы сделать упрощенный пример:
У меня есть два столбца базы данных:
DateTime1 (smalldatetime, NULL)
DateTime2 (smalldatetime, NULL)
Теперь я хочу определить вычисляемый столбец «Статус», который может иметь четыре возможных значения. На фиктивном языке:
if (DateTime1 IS NULL and DateTime2 IS NULL)
set Status = 0
else if (DateTime1 IS NULL and DateTime2 IS NOT NULL)
set Status = 1
else if (DateTime1 IS NOT NULL and DateTime2 IS NULL)
set Status = 2
else
set Status = 3
В идеале я хотел бы иметь функцию GetStatus()
, которая может получить доступ к различным значениям столбца строки таблицы, для которой я хочу вычислить значение «Статус», а затем только определить спецификацию вычисляемого столбца как GetStatus()
без параметров.
Это вообще возможно? Или как лучше всего работать со «сложными» определениями вычисляемых столбцов?
Спасибо за советы заранее!