Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Оператор UPDATE CUBE используется для записи данных в любую ячейку куба, которая агрегируется в родительский элемент с помощью агрегации SUM. Для более подробного объяснения и примера см. раздел «Понимание распределения» в этом блоге: Создание приложения для записи обратной связи с помощью аналитических сервисов (блог).
Syntax
UPDATE [ CUBE ] Cube_Name
SET
<update clause>
[, <update clause> ...n ]
<update clause> ::=
Tuple_Expression[.VALUE]= New_Value
[
USE_EQUAL_ALLOCATION
| USE_EQUAL_INCREMENT
| USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]
| USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
]
Arguments
Cube_Name
Действительная строка, дающая имя куба.
Tuple_Expression
Допустимое выражение многомерных выражений (MDX), возвращающее кортеж.
New_Value
Допустимое числовое выражение.
Weight_Expression
Действительное числовое выражение многомерных выражений (MDX), которое возвращает десятичное значение от 0 до 1.
Remarks
Вы можете обновить значение определённой ячейки или нелистовой ячейки в кубе, при желании выделяя значение для определённой нелистовой ячейки между зависимыми листовыми ячейками. Ячейка, заданная выражением кортежа, может быть любой действительной ячейкой в многомерном пространстве (то есть клетка не обязательно должна быть листовой). Однако ячейка должна быть агрегирована с функцией суммы агрегата и не должна включать вычисленный элемент в кортеже, используемый для идентификации ячейки.
Полезно рассматривать UPDATE оператор CUBE как подпрограмму, которая автоматически генерирует серию отдельных операций записи ячеек в листовые и нелистовые ячейки, которые собираются в заданную сумму.
Ниже приведено описание методов распределения.
USE_EQUAL_ALLOCATION: Каждой ячейке листа, внесённой в обновлённую ячейку, будет присвоено равное значение на основе следующего выражения.
<leaf cell value> =
<New Value> / Count(leaf cells that are contained in <tuple>)
USE_EQUAL_INCREMENT: Каждая клетка листа, вносящая вклад в обновлённую ячейку, будет изменена согласно следующему выражению.
<leaf cell value> = <leaf cell value> +
(<New Value > - <existing value>) /
Count(leaf cells contained in <tuple>)
USE_WEIGHTED_ALLOCATION: Каждой ячейке листа, внесённой в обновлённую ячейку, будет присвоено равное значение, основанное на следующем выражении.
<leaf cell value> = < New Value> * Weight_Expression
USE_WEIGHTED_INCREMENT: Каждая клетка листа, вносящая вклад в обновлённую ячейку, будет изменена согласно следующему выражению.
<leaf cell value> = <leaf cell value> +
(<New Value> - <existing value>) * Weight_Expression
Если выражение веса не указано, UPDATE оператор CUBE неявно использует следующее выражение.
Weight_Expression = <leaf cell value> / <existing value>
Выражение веса должно выражаться в виде десятичного значения между нулём (0) и 1. Это значение указывает отношение выделенного значения, которое вы хотите присвоить к ячекам листа, на которые влияет распределение. Программист клиентских приложений отвечает за создание выражений, чьи агрегированные значения при сводке равны выделенному значению выражения.
Caution
Клиентское приложение должно учитывать распределение всех измерений одновременно, чтобы избежать возможных неожиданных результатов, включая неправильные значения сводки или несогласованные данные.
Каждое UPDATE распределение CUBE должно считаться атомарным для транзакционных целей. Это означает, что если любая из операций распределения не сработает по какой-либо причине, например, из-за ошибки формулы или нарушения безопасности, вся UPDATE операция CUBE провалится. Перед обработкой расчётов отдельных операций распределения делается снимок данных, чтобы убедиться в точности полученных расчётов.
Caution
При использовании на мере, содержащей целые числа, метод USE_WEIGHTED_ALLOCATION может возвращать неточные результаты, вызванные инкрементальными изменениями округления.
Important
Когда обновлённые ячейки не пересекаются, для повышения производительности CUBE может использоваться UPDATE Level строка подключения.