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의 성능을 향상시킬 수 있습니다. 자세한 내용은 ConnectionString를 참조하세요.
예시
Adventure Works 큐브의 Sales Targets 측정값 그룹을 사용하여 UPDATE CUBE를 테스트할 수 있습니다. 이 측정값 그룹은 UPDATE CUBE에 대한 요구 사항인 SUM에 의해 집계된 측정값으로 구성됩니다.
Adventure Works 데이터베이스에서 Sales Targets 측정값 그룹에 대한 쓰기 저장을 사용하도록 설정합니다. Management Studio에서 측정값 그룹을 마우스 오른쪽 단추로 클릭하고 쓰기 저장 옵션을 가리킨 다음 쓰기 저장 사용을 선택합니다.
쓰기 저장 폴더에 새 쓰기 저장 테이블이 표시됩니다. 테이블 이름은 WriteTable_Fact 판매 할당량입니다.
MDX 쿼리 창을 엽니다. 다음 select 문을 실행하여 원래 값을 봅니다.
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]) = 0SELECT 문을 다시 실행합니다. 이제 할당량에 대해 0이 표시됩니다.
쓰기 저장 값은 현재 세션으로 제한됩니다. 사용자 및 세션 간에 값을 유지하려면 쓰기 저장 테이블을 처리합니다. Management Studio에서 WriteTable_Fact Sales Quota를 마우스 오른쪽 단추로 클릭하고 프로세스를 선택합니다.
할당 방법을 지정하려면 새 값이 0보다 커야 합니다. 이 예제에서 판매액 할당량의 새 값은 2백만 개이고 할당 방법은 모든 판매 담당자에게 금액을 분산합니다.
UPDATE CUBE [Adventure Works]
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000
USE_EQUAL_ALLOCATION
오류 조건
다음 표에서는 쓰기 저장이 실패할 수 있는 원인과 이러한 오류의 결과를 모두 설명합니다.
| 오류 조건 | 결과 |
|---|---|
| 업데이트에는 서로 존재하지 않는 동일한 차원의 멤버가 포함됩니다. | 업데이트가 실패합니다. 큐브 공간에 참조된 셀이 포함되지 않습니다. |
| 업데이트에는 부호 없는 유형의 측정값을 원본으로 사용하는 측정값이 포함됩니다. | 업데이트가 실패합니다. 증분은 측정값이 음수 값을 취할 수 있어야 합니다. |
| 업데이트에는 합계 이외의 집계 측정값이 포함됩니다. | 오류가 발생합니다. |
| 하위 큐브에서 업데이트가 시도되었습니다. | 오류가 발생합니다. |
큐브 변경의 영향
다음 변경 내용은 데이터 쓰기 복원에 영향을 미치지 않습니다.
큐브의 처리, 큐브의 척도 그룹 또는 차원 처리.
모든 차원에 특성을 추가합니다.
새 차원 추가
쓰기 저장을 포함하지 않는 차원을 삭제합니다.
계층 구조 추가, 수정 또는 제거
새 측정값을 추가합니다.
쓰기 저장 데이터를 제거하지 않으면 다음을 변경할 수 없습니다.
특성이 쓰기 저장에 포함된 경우 특성 또는 해당 특성 계층을 삭제합니다. 여기에는 특성 또는 특성 계층 구조를 명시적으로 제거하거나 특성의 부모 차원을 제거하는 작업이 포함됩니다.
쓰기 저장에 포함된 측정값을 삭제합니다.
쓰기 저장에 포함된 차원에 수준이 없는
(All)특성을 추가합니다.조회 반영에 포함된 차원의 차원 세분성 변경