Je suis en train d'écrire une fonction définie par l'utilisateur dans SQL Server 2008. Je sais que les fonctions ne peuvent pas soulever d'erreurs de la manière habituelle - si vous essayez d'inclure l'instruction RAISERROR, SQL renvoie :
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
Mais le fait est que la fonction prend une entrée, qui peut être invalide et, si c'est le cas, il n'y a aucune valeur significative que la fonction peut retourner. Que dois-je faire alors ?
Je pourrais, bien sûr, renvoyer NULL, mais il serait difficile pour tout développeur utilisant la fonction de résoudre ce problème. Je pourrais aussi provoquer une division par zéro ou quelque chose du genre - cela générerait un message d'erreur, mais un message trompeur. Existe-t-il un moyen de faire en sorte que mon propre message d'erreur soit signalé d'une manière ou d'une autre ?