USP_MERGETASK_CONSTITUENTLOOKUPID
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ALTERNATELOOKUPIDTYPECODEID | uniqueidentifier | IN | |
@OVERWRITEALTERNATETYPE | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_MERGETASK_CONSTITUENTLOOKUPID
(
@SOURCEID uniqueidentifier,
@TARGETID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@ALTERNATELOOKUPIDTYPECODEID uniqueidentifier = null,
@OVERWRITEALTERNATETYPE bit = 0
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @ALTERNATELOOKUPIDTYPECODEID is null
raiserror('The "Lookup ID" merge task cannot be run because an alternate lookup ID type was not provided by the merge configuration.', 13, 1)
declare @SOURCELOOKUPID nvarchar(100);
select
@SOURCELOOKUPID = LOOKUPID
from dbo.CONSTITUENT
where ID = @SOURCEID
--Make sure the target does not already have the exact alternate lookup ID
if not exists (select ID from dbo.ALTERNATELOOKUPID where CONSTITUENTID = @TARGETID and ALTERNATELOOKUPIDTYPECODEID = @ALTERNATELOOKUPIDTYPECODEID and ALTERNATELOOKUPID = @SOURCELOOKUPID)
begin
if exists (
select top 1 ID
from dbo.ALTERNATELOOKUPID
where ALTERNATELOOKUPID = @SOURCELOOKUPID
and ALTERNATELOOKUPIDTYPECODEID = @ALTERNATELOOKUPIDTYPECODEID
and CONSTITUENTID <> @TARGETID
)
raiserror('Cannot merge to an alternate lookup ID of this type when it already exists on another constituent.', 13, 1)
insert into dbo.ALTERNATELOOKUPID
(
ID,
CONSTITUENTID,
ALTERNATELOOKUPIDTYPECODEID,
ALTERNATELOOKUPID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
newid(),
@TARGETID,
@ALTERNATELOOKUPIDTYPECODEID,
@SOURCELOOKUPID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
return 0;