我正在SQL Server 2008中编写一个用户定义的函数.我知道函数不能以通常的方式引发错误 - 如果您尝试包含RAISERROR语句SQL返回:
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
但事实是,该函数需要一些输入,这可能是无效的,如果是,则函数可以返回没有有意义的值.那我该怎么办?
当然,我可以返回NULL,但是使用该函数的任何开发人员都很难对此进行故障排除.我也可能导致除零或类似的东西 - 这会产生错误信息,但会产生误导性信息.有什么方法可以以某种方式报告我自己的错误消息吗?
我希望能够将自定义错误消息附加到CONSTRAINT对象,特别是CHECK constrints.直接或通过sysmessages中的自定义错误号.
我见过开发人员必须创建触发器.我认为这不是实施它的好理由.
我正在使用SQL SERVER 2008.