USP_RELATIONSHIPSET_RETROCREATE
Creates an relationshipset record retroactively.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@RELATIONSHIPSETID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@RELATIONSHIPID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_RELATIONSHIPSET_RETROCREATE
(
@RELATIONSHIPSETID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@RELATIONSHIPID uniqueidentifier
) as
set nocount on;
declare @CURRENTDATE datetime;
if @RELATIONSHIPSETID is null
set @RELATIONSHIPSETID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
--Add relationship set if missing.
insert into dbo.RELATIONSHIPSET(ID,ADDEDBYID,CHANGEDBYID)
values(@RELATIONSHIPSETID, @CHANGEAGENTID, @CHANGEAGENTID)
update
dbo.RELATIONSHIP
set
RELATIONSHIPSETID = @RELATIONSHIPSETID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @RELATIONSHIPID;
update
dbo.RELATIONSHIP
set
RELATIONSHIP.RELATIONSHIPSETID = @RELATIONSHIPSETID,
RELATIONSHIP.DATECHANGED = @CURRENTDATE,
RELATIONSHIP.CHANGEDBYID = @CHANGEAGENTID
from
RELATIONSHIP
inner join
RELATIONSHIP ORIG
on
RELATIONSHIP.RELATIONSHIPCONSTITUENTID = ORIG.RECIPROCALCONSTITUENTID and
RELATIONSHIP.RECIPROCALCONSTITUENTID = ORIG.RELATIONSHIPCONSTITUENTID and
RELATIONSHIP.RELATIONSHIPTYPECODEID = ORIG.RECIPROCALTYPECODEID and
RELATIONSHIP.RECIPROCALTYPECODEID = ORIG.RELATIONSHIPTYPECODEID
where ORIG.ID = @RELATIONSHIPID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;