USP_PROSPECTSEGMENTATION_SECTIONS_PRIMARY_UPDATEFROMXML
Used to update a set of records defined by UFN_PROSPECTSEGMENTATION_SECTIONS_PRIMARY 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_PRIMARY_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 (
[ESTIMATEDWEALTHHIGHID] uniqueidentifier,
[ESTIMATEDWEALTHLOWID] uniqueidentifier,
[ID] uniqueidentifier,
[LABEL] nvarchar(20),
[MAJORGIVINGCAPACITYHIGHID] uniqueidentifier,
[MAJORGIVINGCAPACITYLOWID] uniqueidentifier,
[RANGEHIGH] int,
[RANGELOW] int,
[SEQUENCE] int,
[TARGETGIFTRANGEHIGHID] uniqueidentifier,
[TARGETGIFTRANGELOWID] uniqueidentifier,
[WEALTHESTIMATORRATINGHIGHID] uniqueidentifier,
[WEALTHESTIMATORRATINGLOWID] uniqueidentifier)
insert into @TempTbl select
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[WEALTHESTIMATORRATINGHIGHID],
[WEALTHESTIMATORRATINGLOWID]
from dbo.UFN_PROSPECTSEGMENTATION_SECTIONS_PRIMARY_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_PRIMARY
(
@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].[ESTIMATEDWEALTHHIGHID]=temp.[ESTIMATEDWEALTHHIGHID],
[PROSPECTSEGMENTATIONSECTION].[ESTIMATEDWEALTHLOWID]=temp.[ESTIMATEDWEALTHLOWID],
[PROSPECTSEGMENTATIONSECTION].[ID]=temp.[ID],
[PROSPECTSEGMENTATIONSECTION].[LABEL]=temp.[LABEL],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYHIGHID]=temp.[MAJORGIVINGCAPACITYHIGHID],
[PROSPECTSEGMENTATIONSECTION].[MAJORGIVINGCAPACITYLOWID]=temp.[MAJORGIVINGCAPACITYLOWID],
[PROSPECTSEGMENTATIONSECTION].[RANGEHIGH]=temp.[RANGEHIGH],
[PROSPECTSEGMENTATIONSECTION].[RANGELOW]=temp.[RANGELOW],
[PROSPECTSEGMENTATIONSECTION].[SEQUENCE]=temp.[SEQUENCE],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGEHIGHID]=temp.[TARGETGIFTRANGEHIGHID],
[PROSPECTSEGMENTATIONSECTION].[TARGETGIFTRANGELOWID]=temp.[TARGETGIFTRANGELOWID],
[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].[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].[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].[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].[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].[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],
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[WEALTHESTIMATORRATINGHIGHID],
[WEALTHESTIMATORRATINGLOWID],
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
select @VARIABLEID,
[ESTIMATEDWEALTHHIGHID],
[ESTIMATEDWEALTHLOWID],
[ID],
[LABEL],
[MAJORGIVINGCAPACITYHIGHID],
[MAJORGIVINGCAPACITYLOWID],
[RANGEHIGH],
[RANGELOW],
[SEQUENCE],
[TARGETGIFTRANGEHIGHID],
[TARGETGIFTRANGELOWID],
[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;