USP_APPUSER_UPDATEINFO

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@EMAILADDRESS nvarchar(100) IN
@DISPLAYNAME nvarchar(255) IN
@CHANGEAGENTID uniqueidentifier IN
@LASTLOGINDATE datetime IN

Definition

Copy


CREATE procedure dbo.USP_APPUSER_UPDATEINFO(
    @APPUSERID uniqueidentifier,
    @EMAILADDRESS nvarchar(100) = null,
    @DISPLAYNAME nvarchar(255) = null,
    @CHANGEAGENTID uniqueidentifier = null,
    @LASTLOGINDATE datetime = null)
as
begin
  set nocount on;

  if @CHANGEAGENTID is null
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

  declare @CURRENTDATE datetime;
  set @CURRENTDATE=getdate();

  begin try

    --If values are empty string, set them to null

    if len(ltrim(rtrim(@DISPLAYNAME))) = 0 
      set @DISPLAYNAME = null;

    if len(ltrim(rtrim(@EMAILADDRESS))) = 0 
      set @EMAILADDRESS = null;

    if len(ltrim(rtrim(@LASTLOGINDATE))) = 0
      set @LASTLOGINDATE = null;

    --Update Display Name and Email address if they are different than current values

    update dbo.APPUSER
    set DISPLAYNAME = coalesce(@DISPLAYNAME, DISPLAYNAME),
        EMAILADDRESS = coalesce(@EMAILADDRESS, EMAILADDRESS),
        LASTLOGINDATE = coalesce(@LASTLOGINDATE, LASTLOGINDATE),
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE
    where ID = @APPUSERID and
          ((@DISPLAYNAME is not null and (@DISPLAYNAME <> DISPLAYNAME)) or
          (@EMAILADDRESS is not null and (EMAILADDRESS is null or @EMAILADDRESS <> EMAILADDRESS)) or
          (@LASTLOGINDATE is not null));

  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch    

  return 0;
end