Ejemplos de modificaciones del script de actualización SQL
En el ejemplo siguiente se muestran modificaciones necesarias al script de actualización SQL aci_runtab_upgrd para dar soporte a niveles de audiencia adicionales.
Su entorno de diseño de Interact existente contiene un nivel de audiencia adicional denominado Unidad familiar. Para dar soporte a este nivel de audiencia, la base de datos del entorno de ejecución de Interact contiene tablas denominadas HH_CHStaging y HH_RHStaging.
Cambios obligatorios en el script de actualización
Localizar el código en el script de actualización SQL que actualiza el tamaño del tratamiento e historial de respuestas del nivel de audiencia de Cliente y replicarlo para el nivel de audiencia Unidad familiar. Cambiar los nombres de tabla de estas sentencias a los nombres adecuados para el nivel de audiencia Unidad familiar.
También debe revisar el SQL para dar soporte a cambio de tipo de datos de la columna SeqNum de la tabla UACI_RHStaging. El valor de SeqNum es un número secuencial en todas las tablas de preparación del historial de respuestas. El siguiente valor utilizado se rastrea mediante la columna NextID en la tabla UACI_IdsByType donde el TypeID es 2. Por ejemplo, tiene tres niveles de audiencia, cliente, unidad familiar y cuenta. En la tabla de preparación del historial de respuestas de cliente el SeqNum más alto es 50. En la tabla de preparación del historial de respuestas de unidad familiar el SeqNum más alto es 75. En la tabla de preparación del historial de respuestas de cuenta el SeqNum más alto es 100. Por lo tanto, debe modificar el SQL para establecer el NextID para TypeID = 2 en UACI_IdsByType a 101.
Las siguientes sentencias SQL de ejemplo muestran las adiciones necesarias al script aci_runtab_upgrd_sqlsvr.sql para una base de datos de SQL Server que contenga el nivel de audiencia Unidad familiar. El texto que se ha modificado para dar soporte al nivel de audiencia Unidad familiar aparece en negrita:
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
go


insert 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
go


DROP 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
Para bases de datos DB2® y Oracle, se utilizaría la sentencia siguiente para insertar valores en la tabla UACI_IdsByType:
INSERT into UACI_IdsByType (TypeID, NextID)  
(select 2, COALESCE(max(a.seqnum)+1,1)
+ COALESCE(max(b.seqnum)+1,1)
from UACI_RHSTAGING a, ACCT_UACI_RHSTAGING b );
Si tiene diversas audiencias, deberá añadir secciones en el script SQL aci_usrtab_upgrd para cada nivel de audiencia como se muestra en el ejemplo siguiente. El ejemplo muestra únicamente las adiciones modificadas.
ALTER TABLE HH_ScoreOverride  ADD 
OverrideTypeID int NULL,
CellCode varchar(64) NULL,
Zone varchar(64) NULL
go

ALTER TABLE HH_ScoreOverride ADD
Predicate varchar(4000) NULL,
FinalScore float NULL,
EnableStateID int NULL
go

CREATE INDEX iScoreOverride_IX1 ON HH_ScoreOverride
(
HouseHoldID ASC
)
go