如何在UDF中消除错误?

时间:2010-11-17 20:59:59

标签: tsql error-handling user-defined-functions

我需要编写一个UDF,它会尝试将varchar转换为bigint,如果失败则返回bigint或0。问题是 - 当字符串不是有效数字时,我找不到静音转换错误的方法。 TRY CATCH在函数内部不起作用,我不知道还能做什么。

1 个答案:

答案 0 :(得分:2)

试试这个:

Create Function dbo.Convert2BigInt(@Data VarChar(100))
Returns BigInt
As 
Begin
    Return(Case When IsNumeric(@Data + '.0e0') = 1 
                Then Convert(BigInt, @Data)
                Else Convert(BigInt, 0)
                End)
End