TR_RELATIONSHIP_UPDATE

Definition

Copy


                    CREATE trigger TR_RELATIONSHIP_UPDATE ON dbo.RELATIONSHIP after update not for replication
                    as begin

                        set nocount on;

                        if dbo.UFN_B2T_CONTEXTISSYNC() = 0
                        begin
                            declare @SYNCENDDATETOHISTORY bit = 0;
                            select @SYNCENDDATETOHISTORY = RELATIONSHIPORGANIZATION.SYNCENDDATETOHISTORY 
                            from INSERTED
                            inner join dbo.RELATIONSHIPORGANIZATION 
                                on INSERTED.RELATIONSHIPSETID = RELATIONSHIPORGANIZATION.RELATIONSHIPSETID

                            /*Update end date in employment history if valid*/
                            if update(ENDDATE) and @SYNCENDDATETOHISTORY = 1
                            begin

                                declare @JOBINFOID uniqueidentifier;

                                select top 1 @JOBINFOID = RELATIONSHIPJOBINFO.ID from INSERTED
                                    inner join dbo.RELATIONSHIPJOBINFO 
                                        on INSERTED.RELATIONSHIPSETID = RELATIONSHIPJOBINFO.RELATIONSHIPSETID
                                    where 
                                        RELATIONSHIPJOBINFO.ENDDATE is null
                                    order by RELATIONSHIPJOBINFO.ENDDATE desc;

                                if @JOBINFOID is not null
                                begin

                                    update
                                        dbo.RELATIONSHIPJOBINFO
                                    set
                                        RELATIONSHIPJOBINFO.ENDDATE = INSERTED.ENDDATE,
                                        RELATIONSHIPJOBINFO.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIPJOBINFO.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    where
                                        RELATIONSHIPJOBINFO.ID = @JOBINFOID

                                end
                                else

                                begin
                                    declare @DATE date = null
                                    set @DATE = (SELECT MAX(RELATIONSHIPJOBINFO.ENDDATE)
                                    from INSERTED
                                    inner join dbo.RELATIONSHIPJOBINFO
                                        on
                                        RELATIONSHIPJOBINFO.RELATIONSHIPSETID = INSERTED.RELATIONSHIPSETID)

                                    update top (1)
                                        dbo.RELATIONSHIPJOBINFO
                                    set
                                        RELATIONSHIPJOBINFO.ENDDATE = INSERTED.ENDDATE,
                                        RELATIONSHIPJOBINFO.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIPJOBINFO.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                    INSERTED
                                        where RELATIONSHIPJOBINFO.RELATIONSHIPSETID = INSERTED.RELATIONSHIPSETID
                                            and RELATIONSHIPJOBINFO.ENDDATE = @DATE

                                end
                            end

                            /*Update reciprocal record's type information if relationship dates have changed*/
                            if update(STARTDATE) or update(ENDDATE)
                            begin
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.STARTDATE = INSERTED.STARTDATE,
                                    RELATIONSHIP.ENDDATE = INSERTED.ENDDATE,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                inner join
                                    DELETED
                                on
                                    DELETED.ID = INSERTED.ID
                                where
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID        
                            end

                            /*Update comments field if it has changed*/
                            if update(COMMENTS) begin    
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.COMMENTS = INSERTED.COMMENTS,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                inner join
                                    DELETED
                                on
                                    DELETED.ID = INSERTED.ID
                                where                
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID
                            end

                            /*Update reciprocal record's contact information if relationship type has changed*/
                            if update(ISCONTACT) or update(CONTACTTYPECODEID) or update(POSITION) begin
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.ISCONTACT = INSERTED.ISCONTACT,
                                    RELATIONSHIP.CONTACTTYPECODEID = INSERTED.CONTACTTYPECODEID,
                                    RELATIONSHIP.POSITION = INSERTED.POSITION,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                inner join
                                    DELETED
                                on
                                    DELETED.ID = INSERTED.ID
                                where                
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID        
                            end



                            /*Update primary business records if IsPrimaryBusiness field has changed*/
                            if update(ISPRIMARYBUSINESS) and exists (select 1 from INSERTED inner join DELETED on DELETED.ID = INSERTED.ID where INSERTED.ISPRIMARYBUSINESS <> DELETED.ISPRIMARYBUSINESS) begin

                                if (select count(ID) from inserted where ISPRIMARYBUSINESS = 1) > 0 begin
                                    /*Remove any references to any other business as a primary business*/
                                    update dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISPRIMARYBUSINESS = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        dbo.RELATIONSHIP
                                        inner join INSERTED
                                            on INSERTED.RELATIONSHIPCONSTITUENTID in (RELATIONSHIP.RELATIONSHIPCONSTITUENTID, RELATIONSHIP.RECIPROCALCONSTITUENTID)
                                            and INSERTED.ID <> RELATIONSHIP.ID
                                        inner join dbo.CONSTITUENT
                                            on CONSTITUENT.ID = INSERTED.RELATIONSHIPCONSTITUENTID
                                    where
                                        CONSTITUENT.ISORGANIZATION <> 1
                                        and RELATIONSHIP.ISPRIMARYBUSINESS = 1
                                        and INSERTED.ISPRIMARYBUSINESS = 1

                                    update dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISPRIMARYBUSINESS = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        dbo.RELATIONSHIP
                                        inner join INSERTED
                                            on INSERTED.RECIPROCALCONSTITUENTID in (RELATIONSHIP.RELATIONSHIPCONSTITUENTID, RELATIONSHIP.RECIPROCALCONSTITUENTID)
                                            and INSERTED.ID <> RELATIONSHIP.ID
                                        inner join dbo.CONSTITUENT
                                            on CONSTITUENT.ID = INSERTED.RECIPROCALCONSTITUENTID
                                    where
                                        CONSTITUENT.ISORGANIZATION <> 1
                                        and RELATIONSHIP.ISPRIMARYBUSINESS = 1
                                        and INSERTED.ISPRIMARYBUSINESS = 1
                                end

                                /*Update reciprocal record's primary business information*/
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.ISPRIMARYBUSINESS = INSERTED.ISPRIMARYBUSINESS,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                    inner join DELETED
                                        on DELETED.ID = INSERTED.ID
                                where                
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID

                            end


                            /*Update primary contact records if IsPrimaryContact field has changed*/
                            if update(ISPRIMARYCONTACT) begin
                                if (select count(ID) from inserted where ISPRIMARYCONTACT = 1) > 0 begin
                                    /*Remove any references to any other individual as a primary contact*/
                                    update
                                        dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISPRIMARYCONTACT = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    inner join
                                        dbo.CONSTITUENT
                                    on
                                        INSERTED.RELATIONSHIPCONSTITUENTID = CONSTITUENT.ID
                                    where
                                        CONSTITUENT.ISORGANIZATION = 1 and 
                                        RELATIONSHIP.ID in
                                        (
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID 

                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISPRIMARYCONTACT = 1 and
                                                RELATIONSHIP.ISPRIMARYCONTACT = 1
                                        union all
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID 
                                            where
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID <> INSERTED.RECIPROCALCONSTITUENTID and
                                                INSERTED.ISPRIMARYCONTACT = 1 and
                                                RELATIONSHIP.ISPRIMARYCONTACT = 1
                                        )

                                    update
                                        dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISPRIMARYCONTACT = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    inner join
                                        dbo.CONSTITUENT
                                    on
                                        INSERTED.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
                                    where
                                        CONSTITUENT.ISORGANIZATION = 1 and 
                                        RELATIONSHIP.ID in
                                        (
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 

                                            where
                                                INSERTED.ISPRIMARYCONTACT = 1 and
                                                RELATIONSHIP.ISPRIMARYCONTACT = 1 and
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID <> INSERTED.RELATIONSHIPCONSTITUENTID
                                        union all
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 
                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISPRIMARYCONTACT = 1 and
                                                RELATIONSHIP.ISPRIMARYCONTACT = 1
                                        )
                                end 

                                /*Update reciprocal record's primary contact information*/
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.ISPRIMARYCONTACT = INSERTED.ISPRIMARYCONTACT,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                inner join
                                    DELETED
                                on
                                    DELETED.ID = INSERTED.ID
                                where                
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID and         
                                    RELATIONSHIP.ISPRIMARYCONTACT = DELETED.ISPRIMARYCONTACT

                            end

                            /*Update reciprocal record's type information if relationship type has changed*/
                            if update(RELATIONSHIPTYPECODEID) or update(RECIPROCALTYPECODEID) or update(ISMATCHINGGIFTRELATIONSHIP) begin        
                                update
                                    dbo.RELATIONSHIP
                                set 
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = INSERTED.RECIPROCALTYPECODEID,
                                    RELATIONSHIP.RECIPROCALTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID,
                                    RELATIONSHIP.ISMATCHINGGIFTRELATIONSHIP = INSERTED.ISMATCHINGGIFTRELATIONSHIP,
                                    RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                    RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from
                                    INSERTED
                                inner join
                                    DELETED
                                on
                                    DELETED.ID = INSERTED.ID
                                where                
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID and
                                    RELATIONSHIP.ISMATCHINGGIFTRELATIONSHIP = DELETED.ISMATCHINGGIFTRELATIONSHIP
                            end

                                                    /*Update ISCONSTITUENT based on Student Relationship Constituency Criteria*/
                                                    if update(RELATIONSHIPTYPECODEID)
                                                            begin                            
                                                                    update dbo.CONSTITUENT
                                                                    set ISCONSTITUENT = 1,
                                                                            CHANGEDBYID = INSERTED.CHANGEDBYID,
                                                                            DATECHANGED = GetDate()
                                                                    from                                     
                                                                            dbo.UFN_CONSTITUENT_STUDENTRELATIONCONSTITUENCIES() as RELATIONCONSTITUENCIES
                                                                    inner join 
                                                                            INSERTED on 
                                                                                    RELATIONCONSTITUENCIES.RECIPROCALCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID and
                                                                                    RELATIONCONSTITUENCIES.CONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID and                                      
                                                                                    RELATIONCONSTITUENCIES.RECIPROCALTYPECODEID = INSERTED.RECIPROCALTYPECODEID and
                                                                                    RELATIONCONSTITUENCIES.RELATIONSHIPTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID
                                                                    where
                                                                            RELATIONCONSTITUENCIES.CONSTITUENTID = CONSTITUENT.ID
                                                                            and CONSTITUENT.ISCONSTITUENT = 0
                                                            end

                                                    if update(RECIPROCALTYPECODEID)
                                                            begin
                                                                    update dbo.CONSTITUENT
                                                                    set ISCONSTITUENT = 1,
                                                                            CHANGEDBYID = INSERTED.CHANGEDBYID,
                                                                            DATECHANGED = GetDate()
                                                                    from                                     
                                                                            dbo.UFN_CONSTITUENT_STUDENTRELATIONCONSTITUENCIES() as RELATIONCONSTITUENCIES
                                                                    inner join 
                                                                            INSERTED on 
                                                                                    RELATIONCONSTITUENCIES.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID and
                                                                                    RELATIONCONSTITUENCIES.CONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID and                                        
                                                                                    RELATIONCONSTITUENCIES.RECIPROCALTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID and
                                                                                    RELATIONCONSTITUENCIES.RELATIONSHIPTYPECODEID = INSERTED.RECIPROCALTYPECODEID
                                                                    where
                                                                            RELATIONCONSTITUENCIES.CONSTITUENTID = CONSTITUENT.ID
                                                                            and CONSTITUENT.ISCONSTITUENT = 0
                                                            end

                            /*Update spouse records if IsSpouse field has changed*/
                            if update(ISSPOUSE) begin
                                if (select count(ID) from inserted where ISSPOUSE = 1) > 0 begin
                                    /*Remove any references to the current record as a spouse*/
                                    update
                                        dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISSPOUSE = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    where
                                        RELATIONSHIP.ID in
                                        (
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID 
                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISSPOUSE = 1 and
                                                RELATIONSHIP.ISSPOUSE = 1
                                        union all
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 
                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISSPOUSE = 1 and
                                                RELATIONSHIP.ISSPOUSE = 1
                                        union all
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP 
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID 
                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISSPOUSE = 1 and
                                                RELATIONSHIP.ISSPOUSE = 1
                                        union all
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 
                                            where
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                INSERTED.ISSPOUSE = 1 and
                                                RELATIONSHIP.ISSPOUSE = 1
                                        )

                                    /*Set the IsSpouse flag on the reciprocal relationship to true*/
                                    update
                                        dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISSPOUSE = 1,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    where
                                        RELATIONSHIP.ID in
                                        (
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 
                                            where                                        
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID and
                                                RELATIONSHIP.RELATIONSHIPTYPECODEID = INSERTED.RECIPROCALTYPECODEID and
                                                RELATIONSHIP.RECIPROCALTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID and
                                                RELATIONSHIP.ID <> INSERTED.ID                
                                        )

                                    /* If constituent spouses are supposed to be marked as spouses make sure the new spouse is marked as a constituent */
                                    if (dbo.UFN_CONSTITUENCYCRITERIASPOUSE_SPOUSEISCONSTITUENT() = 1)
                                    begin
                                        update dbo.CONSTITUENT
                                            set CONSTITUENT.ISCONSTITUENT = 1,
                                                CONSTITUENT.DATECHANGED = INSERTED.DATECHANGED,
                                                CONSTITUENT.CHANGEDBYID = INSERTED.CHANGEDBYID
                                            from dbo.CONSTITUENT
                                                inner join INSERTED
                                                    on INSERTED.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
                                                inner join dbo.CONSTITUENT as RELATIONSHIPCONSTITUENT
                                                    on INSERTED.RELATIONSHIPCONSTITUENTID = RELATIONSHIPCONSTITUENT.ID
                                            where (INSERTED.ISSPOUSE = 1) and
                                                    (CONSTITUENT.ISCONSTITUENT = 0) and 
                                                    (RELATIONSHIPCONSTITUENT.ISCONSTITUENT = 1);
                                    end
                                end 

                                if (select count(ID) from inserted where ISSPOUSE = 0) > 0 begin                
                                    /*Set the IsSpouse flag on the reciprocal relationship to false*/
                                    update
                                        dbo.RELATIONSHIP
                                    set
                                        RELATIONSHIP.ISSPOUSE = 0,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                    from
                                        INSERTED
                                    where
                                        RELATIONSHIP.ID in
                                        (
                                            select
                                                RELATIONSHIP.ID
                                            from
                                                dbo.RELATIONSHIP
                                            inner join
                                                INSERTED
                                            on
                                                RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID 
                                            where                                        
                                                RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID and
                                                RELATIONSHIP.RELATIONSHIPTYPECODEID = INSERTED.RECIPROCALTYPECODEID and
                                                RELATIONSHIP.RECIPROCALTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID and
                                                RELATIONSHIP.ID <> INSERTED.ID and
                                                RELATIONSHIP.ISSPOUSE = 1
                                        )                    
                                end
                            end

                            if update(RELATIONSHIPCONSTITUENTID) or update(RECIPROCALCONSTITUENTID) begin
                                update dbo.RELATIONSHIP
                                set RELATIONSHIP.RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID,
                                        RELATIONSHIP.RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID,
                                        RELATIONSHIP.DATECHANGED = INSERTED.DATECHANGED,
                                        RELATIONSHIP.CHANGEDBYID = INSERTED.CHANGEDBYID
                                from INSERTED
                                inner join DELETED on DELETED.ID = INSERTED.ID
                                where
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID        
                            end
                        end
                        else
                        begin
                            -- TAIntegration data sync

                            -- Just update the reciprocal relationship with all values from the current record in a single update.

                            -- We don't want this trigger updating other records.  The sync will maintain those records appropriately.

                            -- Breaking up the updates of individual fields into separate updates caused some improper constraint violations (see bug 213107).


                            update dbo.RELATIONSHIP
                            set RELATIONSHIPCONSTITUENTID = INSERTED.RECIPROCALCONSTITUENTID,
                                    RECIPROCALCONSTITUENTID = INSERTED.RELATIONSHIPCONSTITUENTID,
                                    RELATIONSHIPTYPECODEID = INSERTED.RECIPROCALTYPECODEID,
                                    RECIPROCALTYPECODEID = INSERTED.RELATIONSHIPTYPECODEID,
                                    ISSPOUSE = INSERTED.ISSPOUSE,
                                    ISPRIMARYBUSINESS = INSERTED.ISPRIMARYBUSINESS,
                                    ISCONTACT = INSERTED.ISCONTACT,
                                    ISPRIMARYCONTACT = INSERTED.ISPRIMARYCONTACT,
                                    CONTACTTYPECODEID = INSERTED.CONTACTTYPECODEID,
                                    POSITION = INSERTED.POSITION,
                                    STARTDATE = INSERTED.STARTDATE,
                                    ENDDATE = INSERTED.ENDDATE,
                                    ISMATCHINGGIFTRELATIONSHIP = INSERTED.ISMATCHINGGIFTRELATIONSHIP,
                                    RELATIONSHIPSETID = INSERTED.RELATIONSHIPSETID,
                                    COMMENTS = INSERTED.COMMENTS,
                                    CHANGEDBYID = INSERTED.CHANGEDBYID,
                                    DATECHANGED = INSERTED.DATECHANGED
                            from INSERTED
                            inner join DELETED on DELETED.ID = INSERTED.ID
                            where
                                    RELATIONSHIP.RELATIONSHIPCONSTITUENTID = DELETED.RECIPROCALCONSTITUENTID and
                                    RELATIONSHIP.RECIPROCALCONSTITUENTID = DELETED.RELATIONSHIPCONSTITUENTID and
                                    RELATIONSHIP.RELATIONSHIPTYPECODEID = DELETED.RECIPROCALTYPECODEID and
                                    RELATIONSHIP.RECIPROCALTYPECODEID = DELETED.RELATIONSHIPTYPECODEID        
                        end            
                    end