Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вычисляемые поля / 2 сообщений из 2, страница 1 из 1
12.11.2002, 10:23:12
    #32066777
nandji
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вычисляемые поля
есть табличка типа

Код: plaintext
1.
2.
3.
Т (
цена
количество
цена * количество as сумма)


так вот при апдейте цены или количества в профайлере вижу

Код: plaintext
1.
update Т set сумма = цена * количество 


то бишь сумма вычисляемое поле и мы его считаем и сохраняем, но ...

при селекте вижу

Код: plaintext
1.
select цена * количество as сумма from T


то бишь сумма вычисляемое поле и мы его считаем и выбираем

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

тогда зачем при селекте его считать ?
опять же есть догадка -- посчитать быстрее и не нагружаем ИО.

Знающие Люди объясните плиз че к чему и в чем фишка.
Спасибо.
...
Рейтинг: 0 / 0
12.11.2002, 11:53:57
    #32066843
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вычисляемые поля
Не знаю почему Profiler так себя ведет, но BOL говорит, что
"A computed column is a virtual column not physically stored in the table.

A computed column cannot be the target of an INSERT or UPDATE statement.
"

А наличие значения для вычисляемого поля в триггере по-моему связано с deterministic/none deterministic самого выражения.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вычисляемые поля / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]