我想在SQL Server 2005中编写一个非CLR用户定义的函数。此函数接受一个输入字符串并返回一个输出字符串。如果输入字符串无效,那么我想向调用者指出一个错误。用户定义函数中的错误处理
我的第一个想法是使用RAISERROR引发异常。但是,SQL Server在UDF内部不允许这样做(尽管您可以在基于CLR的UDF中引发异常,请参阅图)。
如果输入值出错,我最后的手段是从函数返回NULL(或其他错误指示符值)。不过,我不喜欢这个选项,因为它:
- 不提供给调用者的任何有用的信息
- 不允许我以响应有效输入返回NULL(因为它的使用作为错误代码)。
是否有任何调用方便的方法来停止SQL Server中的错误函数?
我期待的很多,但我想我会问。谢谢。 – 2009-08-06 19:05:00
sprocs的问题是你不能用函数的方式调用它们。 – 2013-01-08 19:17:18
我同意@MikeK。我使用UDF而不是完整stored_procedure的全部原因是内联使用。 在较新版本的SQL Server中是否更改了此问题的答案? (例如2016) – ColinMac 2017-09-18 21:29:07