Я пишу пользовательскую функцию в 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, но для любого разработчика, использующего эту функцию, было бы сложно устранить эту проблему. Я мог бы также вызвать деление на ноль или что-то вроде этого - это создаст сообщение об ошибке, но вводит в заблуждение. Можно ли каким-либо образом сообщить свое сообщение об ошибке?