166 Stimmen

So melden Sie einen Fehler aus einer benutzerdefinierten SQL Server-Funktion

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X