Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fehlerbehandlung in benutzerdefinierten Funktionen

Es scheint, dass die UDFs von SQL Server auf diese (und viele andere) Weise etwas eingeschränkt sind.

Da kann man wirklich nicht viel machen - das ist (vorerst) halt so. Entweder Sie können Ihr UDF so definieren, dass Sie über seinen Rückgabewert einen Fehlerzustand zurückmelden können (z. B. im Fehlerfall NULL zurückgeben), oder Sie müssten dann fast darauf zurückgreifen, stattdessen eine gespeicherte Prozedur zu schreiben, was möglich ist viel mehr Fehlerbehandlung und erlaubt RAISERROR und so weiter.

Entwerfen Sie Ihre UDF also entweder so, dass keine spezifische Signalisierung von Fehlerbedingungen erforderlich ist, oder Sie müssen Ihren Ansatz neu konstruieren, um gespeicherte Prozeduren zu verwenden (die mehrere OUTPUT-Parameter haben können und daher auch einen Fehlercode zusammen mit Ihrer Datennutzlast zurückgeben können, wenn Sie benötigen) oder verwalteten CLR-Code für Ihre UDFs.

Tut mir leid, dass ich keine bessere Idee habe - im Moment sind das leider Ihre Möglichkeiten - treffen Sie Ihre Wahl.

Markus