我有一个将数字作为输入并将其转换为日期的函数。这个数字不是任何标准形式的日期数字,所以我必须手动将数字的各个部分分割为不同的日期部分,将日期部分转换为 varchar 字符串,然后将字符串连接并转换为新的日期时间对象。
我的问题是如何捕获转换失败并从我的函数返回空值或低范围值?我更希望我的函数“被动”失败,返回默认值,而不是向我的存储过程返回失败代码。 TRY/CATCH 语句显然在函数内不起作用(除非有某种我不知道的定义标志类型)并且尝试标准的“@@Error <> 0”方法也不起作用。
最佳答案
顺便说一句,这听起来像是一个标量 UDF。正如 Alex 的博客所指出的,这是一场性能灾难。 http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/05/23/reuse-your-code-with-cross-apply.aspx
关于sql-server - "Catching"SQL Server 2005 中用户定义函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353796/