t-sql udf,获取参数的数据类型

时间:2009-06-14 10:30:37

标签: sql-server sql-server-2005 tsql user-defined-functions

是否可以为我的udf获取数字参数 并按照其类型进行处理,例如:

如果@ p1的类型是十进制(10,3) ... 否则,如果@ p1的类型是十进制(15,3) ... 否则,如果@ p1的类型是整数 ...

2 个答案:

答案 0 :(得分:4)

试用sql_variant_property函数......

一些例子......

Declare @Param Int
Set @Param = 30
Select sql_variant_property(@Param, 'BaseType')
Select sql_variant_property(@Param, 'Precision')
Select sql_variant_property(@Param, 'Scale')

Declare @ParamTwo float
Set @ParamTwo = 30.53
Select sql_variant_property(@ParamTwo, 'BaseType')
Select sql_variant_property(@ParamTwo, 'Precision')
Select sql_variant_property(@ParamTwo, 'Scale')

希望它有助于:)

答案 1 :(得分:1)

您应该知道在函数参数中声明了什么类型。

udf参数和返回类型显式声明为“int”或“decimal(p,s)”等...无需解决...