Ich schreibe eine benutzerdefinierte Funktion in SQL Server 2008. Ich weiß, dass Funktionen keine Fehler auf die übliche Weise auslösen können - wenn Sie versuchen, die Anweisung RAISERROR einzuschließen, gibt SQL zurück:
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
Tatsache ist jedoch, dass die Funktion eine Eingabe benötigt, die ungültig sein kann, und wenn dies der Fall ist, gibt es keinen sinnvollen Wert, den die Funktion zurückgeben kann. Was soll ich dann tun?
Ich könnte natürlich NULL zurückgeben, aber es wäre für jeden Entwickler, der die Funktion verwendet, schwierig, dieses Problem zu beheben. Ich könnte auch eine Division durch Null oder etwas Ähnliches verursachen - dies würde eine Fehlermeldung erzeugen, aber eine irreführende. Gibt es eine Möglichkeit, wie ich meine eigene Fehlermeldung irgendwie melden kann?