USP_PROSPECTSEGMENTATION_SECTIONS_SECONDARY_UPDATEFROMXML
Used to update a set of records defined by UFN_PROSPECTSEGMENTATION_SECTIONS_SECONDARY from the given xml string.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@VARIABLEID | uniqueidentifier | IN | |
@XML | xml | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN |
Definition
Copy
/*
Generated by Blackbaud AppFx Platform
Date: 1/27/2010 6:56:16 PM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=2.5.465.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE PROCEDURE dbo.USP_PROSPECTSEGMENTATION_SECTIONS_SECONDARY_UPDATEFROMXML
(
@VARIABLEID uniqueidentifier,
@XML xml,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CHANGEDATE is null
set @CHANGEDATE = getdate()
-- build a temporary table containing the values from the XML
declare @TempTbl table (
[ESTIMATEDWEALTH2HIGHID] uniqueidentifier,
[ESTIMATEDWEALTH2LOWID] uniqueidentifier,
[ESTIMATEDWEALTHHIGHID] uniqueidentifier,
[ESTIMATEDWEALTHLOWID] uniqueidentifier,
[ID] uniqueidentifier,
[LABEL] nvarchar(20),
[LABEL2] nvarchar(20),
[MAJORGIVINGCAPACITY2HIGHID] uniqueidentifier,
[MAJORGIVINGCAPACITY2LOWID] uniqueidentifier,
[MAJORGIVINGCAPACITYHIGHID] uniqueidentifier,
[MAJORGIVINGCAPACITYLOWID] uniqueidentifier,
[RANGE2HIGH] int,
[RANGE2LOW] int,
[RANGEHIGH] int,
[RANGELOW] int,
[SEQUENCE] int,
[TARGETGIFTRANGE2HIGHID] uniqueidentifier,
[TARGETGIFTRANGE2LOWID] uniqueidentifier,
[TARGETGIFTRANGEHIGHID] uniqueidentifier,
[TARGETGIFTRANGELOWID] uniqueidentifier,
[WEALTHESTIMATORRATING2HIGHID] uniqueidentifier,
[WEALTHESTIMATORRATING2LOWID] uniqueidentifier,
[WEALTHESTIMATORRATINGHIGHID] uniqueidentifier,
[WEALTHESTIMATORRATINGLOWID] uniqueidentifier)
insert into @TempTbl select
[ESTIMATEDWEALTH2HIGHID],
[ESTIMATEDWEALTH2LOWID],
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[LABEL2],
[MAJORGIVINGCAPACITY2HIGHID],
[MAJORGIVINGCAPACITY2LOWID],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGE2HIGH],
[RANGE2LOW],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGE2HIGHID],
[TARGETGIFTRANGE2LOWID],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[WEALTHESTIMATORRATING2HIGHID],
[WEALTHESTIMATORRATING2LOWID],
[WEALTHESTIMATORRATINGHIGHID],
[WEALTHESTIMATORRATINGLOWID]
from dbo.UFN_PROSPECTSEGMENTATION_SECTIONS_SECONDARY_FROMITEMLISTXML(@XML)
update @TempTbl set ID = newid() where (ID is null) or (ID = '00000000-0000-0000-0000-000000000000');
if @@Error <> 0
return 1;
declare @contextCache varbinary(128);
declare @e int;
-- cache current context information
set @contextCache = CONTEXT_INFO();
-- set CONTEXT_INFO to @CHANGEAGENTID
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
-- delete any items that no longer exist in the XML table
delete from dbo.[PROSPECTSEGMENTATIONSECTION] where [PROSPECTSEGMENTATIONSECTION].ID in
(select ID from dbo.UFN_PROSPECTSEGMENTATION_SECTIONS_SECONDARY
(
@VARIABLEID
)
EXCEPT select ID from @TempTbl)
select @e=@@error;
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
if @e <> 0
return 2;
-- update the items that exist in the XML table and the db
update [PROSPECTSEGMENTATIONSECTION]
set [PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2HIGHID]=temp.[ESTIMATEDWEALTH2HIGHID],
[PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2LOWID]=temp.[ESTIMATEDWEALTH2LOWID],
[PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHHIGHID]=temp.[ESTIMATEDWEALTHHIGHID],
[PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHLOWID]=temp.[ESTIMATEDWEALTHLOWID],
[PROSPECTSEGMENTATIONSECTION].[ID]=temp.[ID],
[PROSPECTSEGMENTATIONSECTION].[LABEL]=temp.[LABEL],
[PROSPECTSEGMENTATIONSECTION].[LABEL2]=temp.[LABEL2],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2HIGHID]=temp.[MAJORGIVINGCAPACITY2HIGHID],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2LOWID]=temp.[MAJORGIVINGCAPACITY2LOWID],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYHIGHID]=temp.[MAJORGIVINGCAPACITYHIGHID],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYLOWID]=temp.[MAJORGIVINGCAPACITYLOWID],
[PROSPECTSEGMENTATIONSECTION].[RANGE2HIGH]=temp.[RANGE2HIGH],
[PROSPECTSEGMENTATIONSECTION].[RANGE2LOW]=temp.[RANGE2LOW],
[PROSPECTSEGMENTATIONSECTION].[RANGEHIGH]=temp.[RANGEHIGH],
[PROSPECTSEGMENTATIONSECTION].[RANGELOW]=temp.[RANGELOW],
[PROSPECTSEGMENTATIONSECTION].[SEQUENCE]=temp.[SEQUENCE],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2HIGHID]=temp.[TARGETGIFTRANGE2HIGHID],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2LOWID]=temp.[TARGETGIFTRANGE2LOWID],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGEHIGHID]=temp.[TARGETGIFTRANGEHIGHID],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGELOWID]=temp.[TARGETGIFTRANGELOWID],
[PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2HIGHID]=temp.[WEALTHESTIMATORRATING2HIGHID],
[PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2LOWID]=temp.[WEALTHESTIMATORRATING2LOWID],
[PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGHIGHID]=temp.[WEALTHESTIMATORRATINGHIGHID],
[PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGLOWID]=temp.[WEALTHESTIMATORRATINGLOWID],
[PROSPECTSEGMENTATIONSECTION].CHANGEDBYID = @CHANGEAGENTID,
[PROSPECTSEGMENTATIONSECTION].DATECHANGED = @CHANGEDATE
from dbo.[PROSPECTSEGMENTATIONSECTION] inner join @TempTbl as [temp] on [PROSPECTSEGMENTATIONSECTION].ID = [temp].ID
where ([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2HIGHID]<>temp.[ESTIMATEDWEALTH2HIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2HIGHID] is null and temp.[ESTIMATEDWEALTH2HIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2HIGHID] is not null and temp.[ESTIMATEDWEALTH2HIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2LOWID]<>temp.[ESTIMATEDWEALTH2LOWID]) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2LOWID] is null and temp.[ESTIMATEDWEALTH2LOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTH2LOWID] is not null and temp.[ESTIMATEDWEALTH2LOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHHIGHID]<>temp.[ESTIMATEDWEALTHHIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHHIGHID] is null and temp.[ESTIMATEDWEALTHHIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHHIGHID] is not null and temp.[ESTIMATEDWEALTHHIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHLOWID]<>temp.[ESTIMATEDWEALTHLOWID]) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHLOWID] is null and temp.[ESTIMATEDWEALTHLOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHLOWID] is not null and temp.[ESTIMATEDWEALTHLOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[ID]<>temp.[ID]) or
([PROSPECTSEGMENTATIONSECTION].[ID] is null and temp.[ID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[ID] is not null and temp.[ID] is null) or
([PROSPECTSEGMENTATIONSECTION].[LABEL]<>temp.[LABEL]) or
([PROSPECTSEGMENTATIONSECTION].[LABEL] is null and temp.[LABEL] is not null) or
([PROSPECTSEGMENTATIONSECTION].[LABEL] is not null and temp.[LABEL] is null) or
([PROSPECTSEGMENTATIONSECTION].[LABEL2]<>temp.[LABEL2]) or
([PROSPECTSEGMENTATIONSECTION].[LABEL2] is null and temp.[LABEL2] is not null) or
([PROSPECTSEGMENTATIONSECTION].[LABEL2] is not null and temp.[LABEL2] is null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2HIGHID]<>temp.[MAJORGIVINGCAPACITY2HIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2HIGHID] is null and temp.[MAJORGIVINGCAPACITY2HIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2HIGHID] is not null and temp.[MAJORGIVINGCAPACITY2HIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2LOWID]<>temp.[MAJORGIVINGCAPACITY2LOWID]) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2LOWID] is null and temp.[MAJORGIVINGCAPACITY2LOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITY2LOWID] is not null and temp.[MAJORGIVINGCAPACITY2LOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYHIGHID]<>temp.[MAJORGIVINGCAPACITYHIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYHIGHID] is null and temp.[MAJORGIVINGCAPACITYHIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYHIGHID] is not null and temp.[MAJORGIVINGCAPACITYHIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYLOWID]<>temp.[MAJORGIVINGCAPACITYLOWID]) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYLOWID] is null and temp.[MAJORGIVINGCAPACITYLOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYLOWID] is not null and temp.[MAJORGIVINGCAPACITYLOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2HIGH]<>temp.[RANGE2HIGH]) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2HIGH] is null and temp.[RANGE2HIGH] is not null) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2HIGH] is not null and temp.[RANGE2HIGH] is null) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2LOW]<>temp.[RANGE2LOW]) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2LOW] is null and temp.[RANGE2LOW] is not null) or
([PROSPECTSEGMENTATIONSECTION].[RANGE2LOW] is not null and temp.[RANGE2LOW] is null) or
([PROSPECTSEGMENTATIONSECTION].[RANGEHIGH]<>temp.[RANGEHIGH]) or
([PROSPECTSEGMENTATIONSECTION].[RANGEHIGH] is null and temp.[RANGEHIGH] is not null) or
([PROSPECTSEGMENTATIONSECTION].[RANGEHIGH] is not null and temp.[RANGEHIGH] is null) or
([PROSPECTSEGMENTATIONSECTION].[RANGELOW]<>temp.[RANGELOW]) or
([PROSPECTSEGMENTATIONSECTION].[RANGELOW] is null and temp.[RANGELOW] is not null) or
([PROSPECTSEGMENTATIONSECTION].[RANGELOW] is not null and temp.[RANGELOW] is null) or
([PROSPECTSEGMENTATIONSECTION].[SEQUENCE]<>temp.[SEQUENCE]) or
([PROSPECTSEGMENTATIONSECTION].[SEQUENCE] is null and temp.[SEQUENCE] is not null) or
([PROSPECTSEGMENTATIONSECTION].[SEQUENCE] is not null and temp.[SEQUENCE] is null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2HIGHID]<>temp.[TARGETGIFTRANGE2HIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2HIGHID] is null and temp.[TARGETGIFTRANGE2HIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2HIGHID] is not null and temp.[TARGETGIFTRANGE2HIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2LOWID]<>temp.[TARGETGIFTRANGE2LOWID]) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2LOWID] is null and temp.[TARGETGIFTRANGE2LOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGE2LOWID] is not null and temp.[TARGETGIFTRANGE2LOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGEHIGHID]<>temp.[TARGETGIFTRANGEHIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGEHIGHID] is null and temp.[TARGETGIFTRANGEHIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGEHIGHID] is not null and temp.[TARGETGIFTRANGEHIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGELOWID]<>temp.[TARGETGIFTRANGELOWID]) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGELOWID] is null and temp.[TARGETGIFTRANGELOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGELOWID] is not null and temp.[TARGETGIFTRANGELOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2HIGHID]<>temp.[WEALTHESTIMATORRATING2HIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2HIGHID] is null and temp.[WEALTHESTIMATORRATING2HIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2HIGHID] is not null and temp.[WEALTHESTIMATORRATING2HIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2LOWID]<>temp.[WEALTHESTIMATORRATING2LOWID]) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2LOWID] is null and temp.[WEALTHESTIMATORRATING2LOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATING2LOWID] is not null and temp.[WEALTHESTIMATORRATING2LOWID] is null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGHIGHID]<>temp.[WEALTHESTIMATORRATINGHIGHID]) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGHIGHID] is null and temp.[WEALTHESTIMATORRATINGHIGHID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGHIGHID] is not null and temp.[WEALTHESTIMATORRATINGHIGHID] is null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGLOWID]<>temp.[WEALTHESTIMATORRATINGLOWID]) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGLOWID] is null and temp.[WEALTHESTIMATORRATINGLOWID] is not null) or
([PROSPECTSEGMENTATIONSECTION].[WEALTHESTIMATORRATINGLOWID] is not null and temp.[WEALTHESTIMATORRATINGLOWID] is null)
if @@Error <> 0
return 3;
-- insert new items
insert into [PROSPECTSEGMENTATIONSECTION]
([VARIABLEID],
[ESTIMATEDWEALTH2HIGHID],
[ESTIMATEDWEALTH2LOWID],
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[LABEL2],
[MAJORGIVINGCAPACITY2HIGHID],
[MAJORGIVINGCAPACITY2LOWID],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGE2HIGH],
[RANGE2LOW],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGE2HIGHID],
[TARGETGIFTRANGE2LOWID],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[WEALTHESTIMATORRATING2HIGHID],
[WEALTHESTIMATORRATING2LOWID],
[WEALTHESTIMATORRATINGHIGHID],
[WEALTHESTIMATORRATINGLOWID],
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
select @VARIABLEID,
[ESTIMATEDWEALTH2HIGHID],
[ESTIMATEDWEALTH2LOWID],
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[LABEL2],
[MAJORGIVINGCAPACITY2HIGHID],
[MAJORGIVINGCAPACITY2LOWID],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGE2HIGH],
[RANGE2LOW],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGE2HIGHID],
[TARGETGIFTRANGE2LOWID],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[WEALTHESTIMATORRATING2HIGHID],
[WEALTHESTIMATORRATING2LOWID],
[WEALTHESTIMATORRATINGHIGHID],
[WEALTHESTIMATORRATINGLOWID],
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
from @TempTbl as [temp]
where not exists (select ID from dbo.[PROSPECTSEGMENTATIONSECTION] as data where data.ID = [temp].ID)
if @@Error <> 0
return 4;
return 0;