USP_VSECONSTITUENCY_UPDATEFROMXML

Update VSE constituency sequence

Parameters

Parameter Parameter Type Mode Description
@XML xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure [dbo].[USP_VSECONSTITUENCY_UPDATEFROMXML](
                @XML xml,
                @CHANGEAGENTID uniqueidentifier = null
            )
            as
                set nocount on;

                if @CHANGEAGENTID is null
                    exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                -- build a temporary table containing the values from the XML

                declare @TempTbl table (
                   [ID] uniqueidentifier,
                   [VSECONSTITUENCY] nvarchar(35),
                   [SEQUENCE] int)

                insert into @TempTbl select 
                    [ID],
                    [VSECONSTITUENCY],
                    [SEQUENCE]
                from dbo.UFN_VSECONSTITUENCY_FROMITEMLISTXML(@XML)

                if @@Error <> 0
                    return 1;

                -- update the items that exist in the XML table and the db

                update [VSECONSTITUENCY]
                        set 
                            [VSECONSTITUENCY].[SEQUENCE]=temp.[SEQUENCE],
                            [VSECONSTITUENCY].CHANGEDBYID = @CHANGEAGENTID,
                            [VSECONSTITUENCY].DATECHANGED = getdate()

                    from dbo.[VSECONSTITUENCY] inner join @TempTbl as temp on [VSECONSTITUENCY].ID = temp.ID
                    where (
                        ([VSECONSTITUENCY].[SEQUENCE]<>temp.[SEQUENCE]) or 
                        ([VSECONSTITUENCY].[SEQUENCE] is null and temp.[SEQUENCE] is not null) or 
                        ([VSECONSTITUENCY].[SEQUENCE] is not null and temp.[SEQUENCE] is null))

                if @@Error <> 0
                    return 3;    

                return 0;