【发布时间】:2010-11-02 19:37:48
【问题描述】:
是否可以为我的 udf 获取数字参数 并根据其类型进行处理,例如:
如果@p1 的类型是十进制(10,3) ... else if @p1 的类型是十进制(15,3) ... 否则,如果 @p1 的类型是整数 ...
【问题讨论】:
标签: sql-server sql-server-2005 tsql user-defined-functions
是否可以为我的 udf 获取数字参数 并根据其类型进行处理,例如:
如果@p1 的类型是十进制(10,3) ... else if @p1 的类型是十进制(15,3) ... 否则,如果 @p1 的类型是整数 ...
【问题讨论】:
标签: sql-server sql-server-2005 tsql user-defined-functions
试试 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)”等...无需解决...
【讨论】: