dbo.QBM_FCVRelationMVPToFKDollar
Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB
Interpretation
- Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.
Relations
- No extracted relations.
Typed Edges
- No typed edges extracted for this source.
References
- No direct source references extracted.
Referenced By
- No direct source references extracted.
Complete Source
1CREATE FUNCTION dbo.QBM_FCVRelationMVPToFKDollar(2 @RelationMVP varchar(1024)3) RETURNS varchar(10244)5AS6BEGIN7 DECLARE @erg varchar(1024)8 DECLARE @relations TABLE(SortOrder int identity,9 UID_QBMRelation varchar(38) collate database_default,10 Portion varchar(1024) collate database_default)11 DECLARE @anzahlElemente int12 INSERT INTO @relations(UID_QBMRelation)13 SELECT s.value14 FROM string_split(@RelationMVP,15 char(7)) s16 SELECT @anzahlElemente = @@ROWCOUNT17 UPDATE @relations18 SET Portion = CASE19 WHEN w.SortOrder = @anzahlElemente THEN20 r.ChildColumn21 ELSE CONCAT('FK(',22 r.ChildColumn,23 ')')24 END25 FROM @relations w26 JOIN QBM_VQBMRelation r27 ON w.UID_QBMRelation = r.UID_QBMRelation28 IF @@ROWCOUNT = 029 BEGIN30 SELECT @erg = @RelationMVP31 END32 ELSE33 BEGIN34 SELECT35 @erg = STRING_AGG(r.Portion,36 '.') within37 GROUP(38 ORDER BY(r.Sortorder))39 FROM @relations r40 END41 endLabel:42 RETURN(@erg)43END
Open raw exported source
1 create function dbo.QBM_FCVRelationMVPToFKDollar (@RelationMVP varchar(1024) ) returns varchar(1024) as begin declare @erg varchar(1024)2 declare @relations table (SortOrder int identity , UID_QBMRelation varchar(38) collate database_default , Portion varchar(1024) collate database_default3 ) declare @anzahlElemente int insert into @relations(UID_QBMRelation) select s.value from string_split(@RelationMVP, char(7)) s select @anzahlElemente4 = @@ROWCOUNT update @relations set Portion = case when w.SortOrder = @anzahlElemente then r.ChildColumn else concat('FK(', r.ChildColumn, ')') end from5 @relations w join QBM_VQBMRelation r on w.UID_QBMRelation = r.UID_QBMRelation if @@ROWCOUNT = 0 begin select @erg = @RelationMVP end else begin select6 @erg = STRING_AGG(r.Portion, '.') within group(order by (r.Sortorder)) from @relations r end endLabel: return( @erg) end 7