UFN_NAMEFORMATFUNCTIONSPEC

Returns display fields for a user defined name format function.

Return

Return Type
nvarchar(700)

Parameters

Parameter Parameter Type Mode Description
@NAMEFORMATFUNCTIONID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_NAMEFORMATFUNCTIONSPEC(@NAMEFORMATFUNCTIONID uniqueidentifier)
            returns nvarchar(700)
            with execute as owner
            as begin
                declare @name nvarchar(700);

                select @name = DISPLAY
                from dbo.NAMEFORMATFUNCTION
                where ID = @NAMEFORMATFUNCTIONID

                if (@name is null or @name = '')
                begin               
                    declare @xml xml;  

                    select @xml = (  
                        select NAMEFORMATFIELD.DISPLAY [fieldValue], 
                               NAMEFORMATFUNCTIONDETAIL.REMOVETRAILINGSPACE [removeTrailingSpace],
                               NAMEFORMATFUNCTIONDETAIL.INITIAL [useInitial],
                               NAMEFORMATFUNCTIONDETAIL.SMARTREMOVE [smartRemove]
                        from NAMEFORMATFUNCTIONDETAIL
                        inner join NAMEFORMATFIELD
                            on NAMEFORMATFUNCTIONDETAIL.NAMEFORMATFIELDID = NAMEFORMATFIELD.ID
                        where NAMEFORMATFUNCTIONDETAIL.NAMEFORMATFUNCTIONID = @NAMEFORMATFUNCTIONID
                        order by NAMEFORMATFUNCTIONDETAIL.SEQUENCE
                    for xml raw('Field'), type, BINARY BASE64);

                    if (@xml is not null)
                        set @name = dbo.UFN_GETFORMATTEDNAME(@xml)
                    else
                    begin
                        /* Last resort backwards compatibility display.  Any 'initial' operations will display oddly.*/
                        set @name = dbo.UFN_BUILDNAMEFORMAT(@NAMEFORMATFUNCTIONID, null,
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 1), /*[Last name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 2), /*[First Name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 3), /*[Middle Name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 4), /*[Title]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 5), /*[Suffix]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 6), /*[Spouse Last name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 7), /*[Spouse First Name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 8), /*[Spouse Middle Name]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 9), /*[Spouse Title]*/
                            (select DISPLAY from dbo.NAMEFORMATFIELD where FIELDCODE = 10)) /*[Spouse Suffix]*/
                    end
                end

                return @name;
             end