Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для обновления куба используется инструкция 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 Isolation Level может быть использовано для повышения производительности инструкции UPDATE CUBE. Дополнительные сведения см. в разделе ConnectionString. |
Пример
Протестировать инструкцию UPDATE CUBE можно с помощью группы мер «Sales Targets» из куба «Adventure Works». Эта группа мер состоит из мер, агрегированных по SUM, что требуется для инструкции UPDATE CUBE.
Включите обратную запись для группы мер «Sales Targets» из базы данных «Adventure Works». В среде Management Studio щелкните правой кнопкой мыши группу мер, наведите указатель мыши на пункт Параметры обратной записи и выберите Включить обратную запись.
В папке Writeback должна появиться новая таблица обратной записи. Таблица будет иметь имя WriteTable_Fact Sales Quota.
Откройте окно запроса многомерных выражений. Для просмотра исходного значения выполните следующую инструкцию выбора:
SELECT [Measures].[Sales Amount Quota] on 0 , [Employee].[Employee Department].[Title].&[Sales Representative].children on 1 FROM [Adventure Works]На экране должны отобразиться квоты объемов продаж по каждому представителю.
Выполните инструкцию обновления куба для обратной записи нового значения. В этом примере задается квота объема продаж, равная 0. Поскольку новое значение — 0, не указывайте метод распределения.
UPDATE CUBE [Adventure Works] SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0Выполните инструкцию SELECT еще раз. Теперь для квот должно быть указано значение 0.
Обратная запись ограничена только текущим сеансом. Для закрепления значения по всем пользователям и сеансам обработайте таблицу обратной записи. В среде Management Studio щелкните правой кнопкой мыши WriteTable_Fact Sales Quota и выберите Обработать.
Для указания метода распределения новое значение должно быть больше нуля. В этом примере новое значение квоты объема продаж равно двум миллионам, а метод распределения распространяет этот объем по всем торговым представителям.
UPDATE CUBE [Adventure Works]
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000
USE_EQUAL_ALLOCATION
Ситуации, которые могут привести к ошибке
В следующей таблице описаны причины возможных ошибок обратной записи и их результаты.
Условие возникновения ошибки |
Результат |
|---|---|
Инструкция обновления содержит элементы одного и того же измерения, которые не существуют друг с другом. |
Обновление не выполняется. Пространство куба не будет содержать ячейку, на которую ссылается инструкция. |
Инструкция обновления содержит меру, источником которой является мера беззнакового типа данных. |
Обновление не выполняется. При приращении необходимо, чтобы мера могла принимать отрицательные значения. |
Инструкция обновления содержит меру, которая соответствует не сумме, а другому статистическому выражению. |
Возникает ошибка. |
Попытка обновления вложенного куба. |
Возникает ошибка. |
Зависимость от изменений куба
Следующие изменения не влияют на обратную запись.
Обработка куба, групп его мер или измерений.
Добавление атрибутов в любое измерение.
Добавление нового измерения.
Удаление измерения, которое не содержит обратной записи.
Добавление, изменение и удаление иерархии.
Добавление новой меры.
Следующие изменения нельзя выполнить без удаления данных обратной записи.
Удаление атрибута или его иерархии, если атрибут содержится в обратной записи. Под этим подразумевается явное удаление атрибута или его иерархии, либо удаление родительского измерения атрибута.
Удаление меры, которая содержится в обратной записи.
Добавление атрибута без уровня (All) в измерение, которое содержится в обратной записи.
Изменение степени гранулярности измерения, которое содержится в обратной записи.
Примечание