UFN_MKTLISTLAYOUT_GETUNIQUENAME

returns a unique name for the layout by appending a counter is necessary.

Return

Return Type
nvarchar(50)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@NAME nvarchar(50) IN

Definition

Copy


CREATE function dbo.[UFN_MKTLISTLAYOUT_GETUNIQUENAME]
(
  @ID uniqueidentifier,
  @NAME nvarchar(50)
)
/*
returns a unique name for the layout by appending a counter.  Used in the update/insert triggers
for the MKTLISTLAYOUT table
*/
returns nvarchar(50)
as
begin
  declare @NEWNAME nvarchar(255);
  declare @TRIMNAME nvarchar(50);
  declare @COPYCOUNT int;
  declare @INSTANCECOUNT int;

  set @NEWNAME = @NAME;
  set @TRIMNAME = @NAME;
  set @COPYCOUNT = 0;

  set @INSTANCECOUNT = (select count(*) from [dbo].[MKTLISTLAYOUT] L where L.[NAME]=@NEWNAME and L.[ID]<>@ID);
  while @INSTANCECOUNT > 0
  begin
    set @COPYCOUNT=@COPYCOUNT+1;
    set @NEWNAME = @TRIMNAME + ' (' + cast(@COPYCOUNT as nvarchar(20)) + ')';
    while len(@NEWNAME)>50 and len(@TRIMNAME)>1
    begin
      set @TRIMNAME = substring(@TRIMNAME,1,LEN(@TRIMNAME)-1);
      set @NEWNAME = @TRIMNAME + ' (' + cast(@copycount as nvarchar(20)) + ')';
    end;
    set @instancecount = (select count(*) from [dbo].[MKTLISTLAYOUT] L where L.[NAME]=@NEWNAME and L.[ID]<>@ID);
  end;

  return @NEWNAME;
end;