UFN_MERCHANDISEPRODUCTINSTANCE_BUILDDESCRIPTION_2
Return
Return Type |
---|
nvarchar(150) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@INCLUDEPRODUCTNAME | bit | IN |
Definition
Copy
CREATE function dbo.UFN_MERCHANDISEPRODUCTINSTANCE_BUILDDESCRIPTION_2(@ID uniqueidentifier, @INCLUDEPRODUCTNAME bit = 1)
returns nvarchar(150)
with execute as caller
as begin
declare @OPTIONS nvarchar(150)
select @OPTIONS = dbo.UDA_BUILDLISTWITHDELIMITER([OPTIONS].NAME, ', ')
from (
select top 1000 MERCHANDISEPRODUCTOPTIONVALUE.NAME --I need to top for order by. We should only have 3, but I'm future-proofing it in case we support an infinite amount in the future. No reason to limit it (yet).
from dbo.MERCHANDISEPRODUCTOPTIONVALUE
inner join dbo.MERCHANDISEPRODUCTINSTANCEOPTIONVALUE on
MERCHANDISEPRODUCTINSTANCEOPTIONVALUE.MERCHANDISEPRODUCTOPTIONVALUEID = MERCHANDISEPRODUCTOPTIONVALUE.ID
inner join dbo.MERCHANDISEPRODUCTOPTION on
MERCHANDISEPRODUCTOPTIONVALUE.MERCHANDISEPRODUCTOPTIONID = MERCHANDISEPRODUCTOPTION.ID
where MERCHANDISEPRODUCTINSTANCEOPTIONVALUE.MERCHANDISEPRODUCTINSTANCEID = @ID
order by MERCHANDISEPRODUCTOPTION.SEQUENCE asc
) as [OPTIONS]
if @INCLUDEPRODUCTNAME = 1
begin
set @OPTIONS = case when len(@OPTIONS) = 0 then null else @OPTIONS end
select @OPTIONS = P.NAME + isnull(': ' + @OPTIONS, '')
from dbo.MERCHANDISEPRODUCT MP
inner join dbo.PRODUCT P on MP.ID = P.ID
inner join dbo.MERCHANDISEPRODUCTINSTANCE MPI on MPI.MERCHANDISEPRODUCTID = MP.ID
where MPI.ID = @ID
end
else
if len(@OPTIONS) = 0
set @OPTIONS = '---';
return @OPTIONS
end