UFN_APPEALMAILING_GETUNIQUEOUTPUTIDSETNAME
Returns a unique name for an appeal mailing output ID set by appending a counter if necessary.
Return
Return Type |
---|
nvarchar(100) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@PREFIX | nvarchar(10) | IN |
Definition
Copy
create function dbo.[UFN_APPEALMAILING_GETUNIQUEOUTPUTIDSETNAME]
(
@ID uniqueidentifier,
@NAME nvarchar(100),
@PREFIX nvarchar(10)=null
)
/*
returns a unique name for an output ID set by adding a counter.
*/
returns nvarchar(100)
as
begin
declare @NEWNAME nvarchar(255);
declare @TRIMNAME nvarchar(100);
declare @COPYCOUNT int;
declare @INSTANCECOUNT int;
if @PREFIX is null
set @PREFIX = 'Copy';
set @COPYCOUNT = 0;
set @NEWNAME = @NAME;
set @TRIMNAME = @NAME;
set @INSTANCECOUNT = (select count(1) from [dbo].[MKTSEGMENTATION] L where L.[OUTPUTIDSETNAME]=@NEWNAME);
while @INSTANCECOUNT > 0
begin
set @COPYCOUNT=@COPYCOUNT+1;
if @COPYCOUNT>1
set @NEWNAME = @PREFIX + ' (' + cast(@COPYCOUNT as nvarchar(20)) + ') of ' + @TRIMNAME
else
set @NEWNAME = @PREFIX + ' of ' + @TRIMNAME;
while len(@NEWNAME)>100 and len(@TRIMNAME)>1
begin
set @TRIMNAME = substring(@TRIMNAME,1,LEN(@TRIMNAME)-1);
if @COPYCOUNT>1
set @NEWNAME = @PREFIX + ' (' + cast(@COPYCOUNT as nvarchar(20)) + ') of ' + @TRIMNAME
else
set @NEWNAME = @PREFIX + ' of ' + @TRIMNAME;
end;
set @instancecount = (select count(1) from [dbo].[MKTSEGMENTATION] L where L.[OUTPUTIDSETNAME]=@NEWNAME and L.[ID]<>@ID);
end;
return @NEWNAME;
end;