USP_EMAILADDRESS_UPDATE_LOAD
Retrieves the information needed to update an email address.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@EMAILADDRESSTYPECODEID | uniqueidentifier | INOUT | |
@EMAILADDRESS | UDT_EMAILADDRESS | INOUT | |
@PRIMARY | bit | INOUT | |
@DONOTEMAIL | bit | INOUT | |
@SPOUSENAME | nvarchar(154) | INOUT | |
@SPOUSEHASMATCHINGEMAILADDRESS | bit | INOUT | |
@UPDATEMATCHINGSPOUSEEMAILADDRESS | bit | INOUT | |
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS | bit | INOUT | |
@INFOSOURCECODEID | uniqueidentifier | INOUT | |
@INFOSOURCECOMMENTS | nvarchar(256) | INOUT | |
@ORIGINCODE | tinyint | INOUT | |
@STARTDATE | date | INOUT | |
@ENDDATE | date | INOUT | |
@INVALIDEMAIL | bit | INOUT | |
@EMAILBOUNCEDDATE | date | INOUT | |
@EMAILISCONFIDENTIAL | bit | INOUT | |
@DONOTEMAILREASONCODEID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_EMAILADDRESS_UPDATE_LOAD
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@EMAILADDRESSTYPECODEID uniqueidentifier = null output,
@EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
@PRIMARY bit = null output,
@DONOTEMAIL bit = null output,
@SPOUSENAME nvarchar(154) = null output,
@SPOUSEHASMATCHINGEMAILADDRESS bit = null output,
@UPDATEMATCHINGSPOUSEEMAILADDRESS bit = null output,
@UPDATEMATCHINGHOUSEHOLDEMAILADDRESS bit = null output,
@INFOSOURCECODEID uniqueidentifier = null output,
@INFOSOURCECOMMENTS nvarchar(256) = null output,
@ORIGINCODE tinyint = null output,
@STARTDATE date = null output,
@ENDDATE date = null output,
@INVALIDEMAIL bit = null output,
@EMAILBOUNCEDDATE date = null output,
@EMAILISCONFIDENTIAL bit = null output,
@DONOTEMAILREASONCODEID uniqueidentifier = null output
)
as
set nocount on;
declare @SPOUSEID uniqueidentifier;
set @DATALOADED = 0;
set @TSLONG = 0;
set @SPOUSEHASMATCHINGEMAILADDRESS = 0;
set @UPDATEMATCHINGSPOUSEEMAILADDRESS = 0;
if exists(select object_id from sys.objects where type = 'U' and name = 'RELATIONSHIP') begin
select
@DATALOADED = 1,
@EMAILADDRESSTYPECODEID = EMAILADDRESS.EMAILADDRESSTYPECODEID,
@EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
@PRIMARY = EMAILADDRESS.ISPRIMARY,
@DONOTEMAIL = EMAILADDRESS.DONOTEMAIL,
@INFOSOURCECODEID = EMAILADDRESS.INFOSOURCECODEID,
@INFOSOURCECOMMENTS = EMAILADDRESS.INFOSOURCECOMMENTS,
@SPOUSEID = SPOUSE.ID,
@SPOUSENAME = SPOUSE.NAME,
@ORIGINCODE = EMAILADDRESS.ORIGINCODE,
@TSLONG = EMAILADDRESS.TSLONG,
@STARTDATE = EMAILADDRESS.STARTDATE,
@ENDDATE = EMAILADDRESS.ENDDATE,
@EMAILBOUNCEDDATE = (SELECT DATECHANGED FROM dbo.EMAILINVALIDRECIPIENT WHERE EMAILINVALIDRECIPIENT.ADDRESS = EMAILADDRESS.EMAILADDRESS AND EMAILINVALIDRECIPIENT.ISBLACKLISTED = 1),
@INVALIDEMAIL = case when (@EMAILBOUNCEDDATE is null) then 0 else 1 end,
@EMAILISCONFIDENTIAL = EMAILADDRESS.ISCONFIDENTIAL,
@DONOTEMAILREASONCODEID = EMAILADDRESS.DONOTEMAILREASONCODEID
from
dbo.EMAILADDRESS
left join dbo.RELATIONSHIP on RELATIONSHIP.RELATIONSHIPCONSTITUENTID = EMAILADDRESS.CONSTITUENTID and RELATIONSHIP.ISSPOUSE = 1
left join dbo.CONSTITUENT as SPOUSE on SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
where
EMAILADDRESS.ID = @ID;
if exists (
select EMAILADDRESS.ID
from dbo.EMAILADDRESS
where
EMAILADDRESS.CONSTITUENTID = @SPOUSEID and
EMAILADDRESS.EMAILADDRESS = @EMAILADDRESS
) begin
set @SPOUSEHASMATCHINGEMAILADDRESS = 1;
set @UPDATEMATCHINGSPOUSEEMAILADDRESS = 1;
end
end
else begin
select
@DATALOADED = 1,
@EMAILADDRESSTYPECODEID = EMAILADDRESS.EMAILADDRESSTYPECODEID,
@EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
@PRIMARY = EMAILADDRESS.ISPRIMARY,
@DONOTEMAIL = EMAILADDRESS.DONOTEMAIL,
@INFOSOURCECODEID = EMAILADDRESS.INFOSOURCECODEID,
@INFOSOURCECOMMENTS = EMAILADDRESS.INFOSOURCECOMMENTS,
@ORIGINCODE = EMAILADDRESS.ORIGINCODE,
@TSLONG = EMAILADDRESS.TSLONG,
@STARTDATE = EMAILADDRESS.STARTDATE,
@ENDDATE = EMAILADDRESS.ENDDATE,
@EMAILBOUNCEDDATE = (SELECT UPDATEDATE FROM dbo.EMAILINVALIDACCOUNT WHERE EMAILINVALIDACCOUNT.EMAILADDRESS = EMAILADDRESS.EMAILADDRESS AND EMAILINVALIDACCOUNT.ACTIVE = 1),
@INVALIDEMAIL = case when (@EMAILBOUNCEDDATE is null) then 0 else 1 end,
@EMAILISCONFIDENTIAL = EMAILADDRESS.ISCONFIDENTIAL,
@DONOTEMAILREASONCODEID = EMAILADDRESS.DONOTEMAILREASONCODEID
from
dbo.EMAILADDRESS
where
EMAILADDRESS.ID = @ID;
end
return 0;