是否可以为我的 udf 获取数字参数并根据其类型执行操作,例如:
如果@p1 的类型是十进制(10,3) ... else 如果@p1 的类型是十进制(15,3) ... else 如果@p1 的类型是整数...
是否可以为我的 udf 获取数字参数并根据其类型执行操作,例如:
如果@p1 的类型是十进制(10,3) ... else 如果@p1 的类型是十进制(15,3) ... else 如果@p1 的类型是整数...
试试 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')
希望它有帮助:)
您应该知道函数参数中声明的类型。
udf 参数和返回类型显式声明为“int”或“decimal(p,s)”等...无需解决...