Обратная запись в куб (многомерные выражения)
Для обновления куба используется инструкция UPDATE CUBE. Эта инструкция позволяет записать в кортеж указанное значение. Для эффективного использования инструкции UPDATE CUBE необходимо понимать ее синтаксис, ситуации, в которых может возникнуть ошибка, и влияние обновления на весь куб.
Синтаксис инструкции UPDATE CUBE
Синтаксис инструкции UPDATE CUBE приведен далее:
UPDATE [CUBE] <Cube_Name> SET <tuple>.VALUE = <value> [,<tuple>.VALUE = <value>...]
[ USE_EQUAL_ALLOCATION | USE_EQUAL_INCREMENT |
USE_WEIGHTED_ALLOCATION [BY <weight value_expression>] |
USE_WEIGHTED_INCREMENT [BY <weight value_expression>] ]
Если для кортежа не указан полный набор координат, вместо неуказанных координат используется элемент иерархии по умолчанию. Заданный кортеж должен ссылаться на ячейку, которая содержит статистическое значение, полученное с помощью функции Sum. В качестве координат ячейки нельзя использовать вычисляемые элементы.
Инструкция UPDATE CUBE подобна подпрограмме, выполняющей серию отдельных операций обратной записи в элементарные ячейки. Затем отдельные операции обратной записи сворачиваются в указанную сумму. В следующем примере с помощью инструкции UPDATE CUBE мере Unit Shipped для семейства продуктов Drink присваивается значение 0 (ноль).
UPDATE CUBE [Warehouse and Sales] SET ([Measures].[Units Shipped], [Product].[Product Family].[Product Family].&[Drink]) = 0 USE_NO_ALLOCATION
Примечание |
|---|
В службах MicrosoftSQL ServerAnalysis Services можно обновлять любые ячейки. |
Важно! |
|---|
Если обновленные ячейки не перекрываются, то свойство Update Isolation Level строки соединения может быть использовано для повышения производительности для UPDATE CUBE. Дополнительные сведения см. в ConnectionString. |
Ситуации, которые могут привести к ошибке
В следующей таблице описаны причины возможных ошибок обратной записи и их результаты.
Условие возникновения ошибки |
Результат |
|---|---|
Инструкция обновления содержит элементы одного и того же измерения, которые не существуют друг с другом. |
Обновление не выполняется. Пространство куба не будет содержать ячейку, на которую ссылается инструкция. |
Инструкция обновления содержит меру, источником которой является мера беззнакового типа данных. |
Обновление не выполняется. При приращении необходимо, чтобы мера могла принимать отрицательные значения. |
Инструкция обновления содержит меру, которая соответствует не сумме, а другому статистическому выражению. |
Возникает ошибка. |
Попытка обновления вложенного куба. |
Возникает ошибка. |
Зависимость от изменений куба
Следующие изменения не влияют на обратную запись:
Обработка куба, групп его мер или измерений.
Добавление атрибутов в любое измерение.
Добавление нового измерения.
Удаление измерения, которое не содержит обратной записи.
Добавление, изменение и удаление иерархии.
Добавление новой меры.
Следующие изменения нельзя выполнить без удаления данных обратной записи.
Удаление атрибута или его иерархии, если атрибут содержится в обратной записи. Под этим подразумевается явное удаление атрибута или его иерархии, либо удаление родительского измерения атрибута.
Удаление меры, которая содержится в обратной записи.
Добавление атрибута без уровня (All) в измерение, которое содержится в обратной записи.
Изменение степени гранулярности измерения, которое содержится в обратной записи.
Примечание
Важно!