我想在 SQL Server 2005 中编写一个非 CLR 用户定义函数。该函数接受一个输入字符串并返回一个输出字符串。如果输入字符串无效,那么我想向调用者指示错误。
我的第一个想法是使用 RAISERROR 引发异常。但是,SQL Server 不允许在 UDF 中这样做(尽管您可以在基于 CLR 的 UDF 中引发异常,如图所示)。
如果输入值有误,我最后的办法是从函数返回 NULL(或其他一些错误指示值)。但是,我不喜欢这个选项,因为它:
- 不向调用者提供任何有用的信息
- 不允许我返回 NULL 以响应有效输入(因为它被用作错误代码)。
是否有任何调用者友好的方式来停止 SQL Server 中的错误函数?