Sto scrivendo una funzione definita dall'utente in SQL Server 2008. So che le funzioni non possono generare errori nel solito modo - se si tenta di includere l'istruzione RAISERROR restituisce SQL:
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
Ma il fatto è che la funzione accetta alcuni input, che potrebbero non essere validi e, in tal caso, non esiste alcun valore significativo che la funzione può restituire. Cosa faccio allora?
Potrei, ovviamente, restituire NULL, ma sarebbe difficile per qualsiasi sviluppatore che utilizza la funzione per risolvere questo problema. Potrei anche causare una divisione per zero o qualcosa del genere - questo genererebbe un messaggio di errore, ma fuorviante. C'è un modo in cui posso avere il mio messaggio di errore segnalato in qualche modo?