Back to OIM Explorer

dbo.QBM_FGIColumnDataLen

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 973 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_FGIColumnDataType source text reference

Complete Source

SQL57 lines
1CREATE FUNCTION dbo.QBM_FGIColumnDataLen(2  @TableName varchar(30),3  @columnname varchar(30)4) RETURNS int5AS6BEGIN7  DECLARE @erg int8  DECLARE @datatype nvarchar(64)9  IF @TableName IN(10    SELECT TableName11    FROM QBM_VStartupTables)12  BEGIN13    SELECT TOP 1 @erg = CHARACTER_MAXIMUM_LENGTH14    FROM INFORMATION_SCHEMA.COLUMNS cc15    WHERE16      cc.COLUMN_NAME = @columnname AND cc.TABLE_NAME = @TableName17  END18  ELSE19  BEGIN20    SELECT TOP 1 @erg = cc.SchemaDataLen21    FROM DialogColumn cc22      WITH(readpast)23    JOIN DialogTable t24      WITH(readpast)25      ON cc.UID_DialogTable = t.UID_DialogTable26    WHERE27      cc.ColumnName = @columnname AND t.TableName = @TableName28  END29  IF @erg = -130  BEGIN31    SELECT @erg = 214748364732    RETURN(@erg)33  END34  IF isnull(@erg,35  0) = 036  BEGIN37    SELECT38      @datatype = dbo.QBM_FGIColumnDataType(@TableName,39      @columnname)40    SELECT @erg = CASE @datatype41    WHEN 'int' THEN42    443    WHEN 'bigint' THEN44    845    WHEN 'bit' THEN46    147    WHEN 'float' THEN48    849    WHEN 'bigint' THEN50    851    WHEN 'datetime' THEN52    853    END54  END55  endLabel:56  RETURN(@erg)57END
Open raw exported source
SQL ยท Raw8 lines
1  create   function dbo.QBM_FGIColumnDataLen(@TableName varchar(30) , @columnname varchar(30) ) returns int as begin  declare @erg int declare @datatype2 nvarchar(64) if @TableName in (select TableName from QBM_VStartupTables) begin select top 1 @erg = CHARACTER_MAXIMUM_LENGTH from INFORMATION_SCHEMA.COLUMNS3 cc where cc.COLUMN_NAME = @columnname and cc.TABLE_NAME = @TableName end else begin select top 1 @erg = cc.SchemaDataLen from DialogColumn cc with (readpast4) join DialogTable t with (readpast) on cc.UID_DialogTable = t.UID_DialogTable where cc.ColumnName = @columnname and t.TableName = @TableName end if @erg5 = -1 begin select @erg = 2147483647  return(@erg)  end if isnull(@erg, 0) = 0 begin select @datatype = dbo.QBM_FGIColumnDataType(@TableName , @columnname6) select @erg = case @datatype when 'int' then 4 when 'bigint' then 8 when 'bit' then 1 when 'float' then 8 when 'bigint' then 8 when 'datetime' then 87 end end endLabel: return(@erg) end 8