4

是否可以为我的 udf 获取数字参数并根据其类型执行操作,例如:

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

4

2 回答 2

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')

希望它有帮助:)

于 2009-06-14T10:40:24.640 回答
1

您应该知道函数参数中声明的类型。

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

于 2009-06-14T14:53:40.693 回答