Back to OIM Explorer

dbo.QBM_FSQObjectKeyRepair_fn2

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 928 characters

Interpretation

  • Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.

Relations

  • No extracted relations.

Typed Edges

  • references source dbo.QBM_FGIPrimaryKeyName source text reference
  • references source dbo.QBM_FGIPrimaryKeyName_F source text reference
  • references source dbo.QBM_FSQObjectKeyRepair_fn source text reference

Complete Source

SQL51 lines
1CREATE FUNCTION dbo.QBM_FSQObjectKeyRepair_fn2(2  @TableName nvarchar(64),3  @Synonym nvarchar(64)4) RETURNS nvarchar(max5)6AS7BEGIN8  DECLARE @erg nvarchar(max)9  DECLARE @pkname1 varchar(30) = ''10  DECLARE @pkname2 varchar(30) = ''11  DECLARE @columnname nvarchar(64)12  SELECT TOP 1 @TableName = t.TableName13  FROM DialogTable t14    WITH(readpast)15  WHERE16    t.TableName = @TableName17  SELECT18    @pkname1 = dbo.QBM_FGIPrimaryKeyName_F(@TableName,19    1)20  SELECT21    @columnname = dbo.QBM_FGIPrimaryKeyName_F(@TableName,22    2)23  IF @columnname > ' '24  BEGIN25    IF @columnname < @pkname126    BEGIN27      SELECT @pkname2 = @pkname128      SELECT @pkname1 = @columnname29    END30    ELSE31    BEGIN32      SELECT @pkname2 = @columnname33    END34  END35  SELECT36    @erg = CONCAT('concat(''<Key><T>',37    @TableName,38    '</T>',39    '<P>'' , ',40    @Synonym,41    '.',42    @pkname1,43    ' , ''</P>',44  CASE45    WHEN @pkname2 > ' ' THEN46  CONCAT('<P>'' , ', @Synonym, '.', @pkname2 + ' , ''</P>')47  ELSE ''48  END,49  '</Key>'')')50  RETURN @erg51END
Open raw exported source
SQL ยท Raw7 lines
1 create   function dbo.QBM_FSQObjectKeyRepair_fn2 (@TableName nvarchar(64) , @Synonym nvarchar(64) ) returns nvarchar(max) as begin declare @erg2 nvarchar(max) declare @pkname1 varchar(30) = '' declare @pkname2 varchar(30) = '' declare @columnname nvarchar(64) select top 1 @TableName = t.TableName3 from DialogTable t with (readpast) where t.TableName = @TableName select @pkname1 = dbo.QBM_FGIPrimaryKeyName_F(@TableName , 1) select @columnname = dbo.QBM_FGIPrimaryKeyName_F4(@TableName , 2) if @columnname > ' ' begin if @columnname < @pkname1 begin select @pkname2 = @pkname1 select @pkname1 = @columnname end else begin select5 @pkname2 = @columnname end end select @erg = concat( 'concat(''<Key><T>' , @TableName , '</T>' , '<P>'' , ' , @Synonym , '.' , @pkname1 , ' , ''</P>' 6, case when @pkname2 > ' ' then concat('<P>'' , ' , @Synonym , '.' , @pkname2 + ' , ''</P>') else '' end , '</Key>'')' ) return @erg end 7