Site Search:
Sign in | Join | Help

SQL Server (T-SQL)

Comments and notes on SQL Server 2000, 2005, and T-SQL

f_4P_columnType

This function is a helper that is used in our DDL scripts 

-- =============================================
-- Create scalar function (FN)
-- =============================================
IF EXISTS (SELECT * 
    FROM   sysobjects 
    WHERE  name = N'f_4P_columnType')
 DROP FUNCTION f_4P_columnType
GO



CREATE FUNCTION f_4P_columnType 
 (@intColumnType as int,@intLength int, @intPrecision int , @intscale int)



-- select dbo.f_4P_columnType(56,0,0,0)



RETURNS varchar(20)



AS
BEGIN
declare @out varchar(20)



select @out = 
 case when @intColumnType = 56 then 'int'
  when @intColumnType = 48 then 'tinyint'
  when @intColumnType = 36 then 'uniqueidentifier'
  when @intColumnType = 52 then 'smallint'
  when @intColumnType = 60 then 'money'
  when @intColumnType = 45 then 'bit'
  when @intColumnType = 62 then 'float'


  when @intColumnType = 35 then 'text'
  when @intColumnType = 61 then 'datetime'
  when @intColumnType = 189 then 'timestamp'
  when @intColumnType = 239 then 'nvar(' + convert(varchar(4),@intLength) + ')'
  when @intColumnType = 231 then 'nvarchar(' + convert(varchar(4),@intLength) + ')'
  when @intColumnType = 173 then 'binary(' + convert(varchar(4),@intLength) + ')'
  when @intColumnType in (175,47) then 'char(' + convert(varchar(4),@intLength) + ')'
  when @intColumnType = 167 then 'varchar(' + convert(varchar(4),@intLength) + ')'
  when @intColumnType in (108,63) then 'numeric(' + convert(varchar(4),@intPrecision) + ',' + convert(varchar(4),@intscale) + ')'
  when @intColumnType in (106) then 'numeric(' + convert(varchar(4),@intPrecision) + ',' + convert(varchar(4),@intscale) + ')'
  else 'dunno - ' + convert(varchar(4),@intColumnType)
  end 



 return @out


 


END
GO

Comments

No Comments

About Steve Gray

Steve is a seasoned (translate: old) developer in VB and ASP.NET. He spends most of his time in Dynamics GP, writing custom mods for consulting firms. Crystal reports, eConnect, VS Tools for Dynamics... anything that comes along.