다음 예제에서는 추가 대상 수준을 지원하기 위해 aci_runtab_upgrd SQL 업그레이드 스크립트에 필요한 수정을 표시합니다.
기존 Interact 디자인 환경에 가정이라는 추가 대상 수준이 포함되어 있습니다. 이 대상 수준을 지원하기 위해
Interact 런타임 환경 데이터베이스에
HH_CHStaging 및
HH_RHStaging 테이블이 포함되어 있습니다.
UACI_RHStaging 테이블의
SeqNum 열에 대해서도 데이터 유형 변경을 지원하도록 SQL을 개정해야 합니다.
SeqNum의 값은 모든 응답 기록 스테이징 테이블에서 순차 번호입니다. 사용되는 그 다음 값은
UACI_IdsByType 테이블의
NextID 열에서 추적되며 여기서
TypeID는
2입니다. 예를 들어, 고객, 가정 및 계정이라는 세 개의 대상 수준이 있습니다. 고객 응답 기록 스테이징 테이블에서 가장 높은
SeqNum은
50입니다. 가정 응답 기록 스테이징 테이블에서 가장 높은
SeqNum은
75입니다. 계정 응답 기록 스테이징 테이블에서 가장 높은
SeqNum은
100입니다. 따라서
UACI_IdsByType에서
TypeID = 2의
NextID를
101로 변경해야 합니다.
다음 SQL문 예제는 가정 대상 수준이 포함된 SQL Server 데이터베이스의 aci_runtab_upgrd_sqlsvr.sql 스크립트에 필요한 추가 항목을 보여줍니다. 가정 대상 수준을 지원하도록 변경된 텍스트는 굵은체로 표시되어 있습니다.
ALTER TABLE UACI_CHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE UACI_RHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE HH_CHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE HH_RHStaging ADD RTSelectionMethod int NULL
goinsert into UACI_IdsByType (TypeID, NextID) (select 2,
IDENT_CURRENT('UACI_RHStaging')
+ IDENT_CURRENT('HH_RHStaging') + IDENT_INCR( 'UACI_RHStaging' ))
go
select * into UACI_RHStaging_COPY from UACI_RHStaging
go
select * into HH_RHStaging_COPY from HH_RHStaging
goDROP TABLE UACI_RHStaging
go
CREATE TABLE UACI_RHStaging (
SeqNum bigint NOT NULL,
TreatmentCode varchar(512) NULL,
CustomerID bigint NULL,
ResponseDate datetime NULL,
ResponseType int NULL,
ResponseTypeCode varchar(64) NULL,
Mark bigint NOT NULL
DEFAULT 0,
UserDefinedFields char(18) NULL,
RTSelectionMethod int NULL,
CONSTRAINT iRHStaging_PK
PRIMARY KEY (SeqNum ASC)
)
go
insert into UACI_RHStaging (SeqNum, TreatmentCode, CustomerID, ResponseDate,
ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod)
(select SeqNum, TreatmentCode, CustomerID, ResponseDate, ResponseType,
ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from
UACI_RHStaging_COPY)
go
DROP TABLE UACI_RHStaging_COPY
go
DROP TABLE HH_RHStaging
go
CREATE TABLE HH_RHStaging (
SeqNum bigint NOT NULL,
TreatmentCode varchar(512) NULL,
HouseholdID bigint NULL,
ResponseDate datetime NULL,
ResponseType int NULL,
ResponseTypeCode varchar(64) NULL,
Mark bigint NOT NULL
DEFAULT 0,
UserDefinedFields char(18) NULL,
RTSelectionMethod int NULL,
CONSTRAINT iRHStaging_PK
PRIMARY KEY (SeqNum ASC)
)
go
insert into HH_RHStaging (SeqNum, TreatmentCode, HouseHoldID, ResponseDate,
ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod)
(select SeqNum, TreatmentCode, HouseHoldID, ResponseDate, ResponseType,
ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from
HH_RHStaging_COPY)
go
DROP TABLE HH_RHStaging_COPY
go
DB2® 및 Oracle 데이터베이스의 경우
UACI_IdsByType 테이블에 값을 삽입하기 위해 다음 명령문을 사용합니다.
여러 대상 수준이 있는 경우 다음 예제에 표시된 것처럼 각 대상 수준마다 aci_usrtab_upgrd SQL 스크립트에 섹션을 추가해야 합니다. 예제에는 수정된 추가 항목만 표시되어 있습니다.