代码之家  ›  专栏  ›  技术社区  ›  Andrey

如何消除UDF中的错误?

  •  0
  • Andrey  · 技术社区  · 14 年前

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

    1 回复  |  直到 14 年前
        1
  •  2
  •   George Mastros    14 年前

    试试这个:

    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