t-sql udf, получить тип данных параметра - PullRequest
4 голосов
/ 14 июня 2009

возможно ли получить числовой параметр для моего udf и делать вещи в соответствии с их типом, как:

если тип @ p1 десятичный (10,3) ... иначе, если тип @ p1 десятичный (15,3) ... иначе, если тип @ p1 является целым числом ...

Ответы [ 2 ]

4 голосов
/ 14 июня 2009

Попробуйте функцию 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 голос
/ 14 июня 2009

Вы должны знать, какой тип объявлен в параметрах функции.

Параметры udf и тип возвращаемого значения явно объявлены как "int" или "decimal (p, s)" и т. Д. ... нет необходимости разбираться в этом ...

...