UFN_MKTASKLADDER_GETUNIQUENAME
Returns a unique name for an ask ladder by appending a counter as 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_MKTASKLADDER_GETUNIQUENAME]
(
@ID uniqueidentifier,
@NAME nvarchar(100),
@PREFIX nvarchar(10) = null
)
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(*) from [dbo].[MKTASKLADDER] where [NAME] = @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(*) from [dbo].[MKTASKLADDER] where [NAME] = @NEWNAME and [ID] <> @ID)
end
return @NEWNAME
end