USP_APPUSER_GETALLSYSTEMROLES_UPDATEFROMXML

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@SYSTEMROLES xml IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


create procedure dbo.USP_APPUSER_GETALLSYSTEMROLES_UPDATEFROMXML
(
    @APPUSERID uniqueidentifier,
    @SYSTEMROLES xml,
    @CHANGEAGENTID uniqueidentifier = null,
    @CHANGEDATE datetime = null
)
as
    set nocount on;

    if @CHANGEAGENTID is null
        exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    if @CHANGEDATE is null 
        set @CHANGEDATE = getdate();


    merge into dbo.SYSTEMROLEAPPUSER target
    using (
        select
            ROLES.SYSTEMROLEID
        from dbo.UFN_APPUSER_GETALLSYSTEMROLES_FROMITEMLISTXML(@SYSTEMROLES) ROLES
        where ROLES.SELECTED = 1
    ) source
    on source.SYSTEMROLEID = target.SYSTEMROLEID
        and target.APPUSERID = @APPUSERID
    when not matched by target then
        insert (ID, SYSTEMROLEID, APPUSERID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values (newID(), source.SYSTEMROLEID, @APPUSERID, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE)
    when not matched by source and target.APPUSERID = @APPUSERID then delete;