IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[getDataType]') AND type = 'FN')
DROP FUNCTION [dbo].[getDataType]
GO
/*@type 类型 0:传入的是空串 1:字符串 2:浮点数 3:整数*/

create function [dbo].[getDataType](@str varchar(500))
returns int
as
/*@type 类型 0:传入的是空串 1:字符串 2:浮点数 3:整数*/
begin
 declare @type int,@start int,@i int,@strVar varchar(500)=@str
 set @strVar = isnull(@strVar,'')
 if (LEN(@strVar)<1)/*空串*/
begin 
return 0;
end;
 select @start=0,@type=0
 set @i=CHARINDEX('''',@str,@start)
 /*若是双引号开头说明是字符串*/
if(@i=1)
begin 
set @type=1;
end;
 /*判断字符串是数字*/
 set @i=ISNUMERIC(@str);
 if(@i=1)/*数字返回1.其他返回负数*/
begin
declare @j int
select @j=0
set @j=CHARINDEX('.',@str,@start)
if (@j>0)/*浮点数*/
begin
set @type=2
end;
else set @type=3
end;
 else set @type=1;
 return @type
end