Desidero scrivere una funzione definita dall'utente non CLR in SQL Server 2005. Questa funzione accetta una stringa di input e restituisce una stringa di output. Se la stringa di input non è valida, voglio indicare un errore al chiamante.Gestione errori nelle funzioni definite dall'utente
Il mio primo pensiero è stato usare RAISERROR per sollevare un'eccezione. Tuttavia, SQL Server non lo consente all'interno di una UDF (sebbene sia possibile generare eccezioni nelle UDF basate su CLR, fare clic).
La mia ultima risorsa sarebbe quella di restituire un valore NULL (o qualche altro valore di errore) dalla funzione se il valore di input è errato. Tuttavia, non mi piace questa opzione, in quanto:
- non fornisce tutte le informazioni utili al chiamante
- non mi consente di restituire un NULL in risposta all'input valido (dal momento che è utilizzato come un codice di errore).
C'è un modo facile per la chiamata di arrestare una funzione su un errore in SQL Server?
Mi aspettavo tanto, ma ho pensato di chiederlo. Grazie. –
Il problema con sprocs è che non è possibile chiamarli in linea come è possibile con le funzioni. –
Sono d'accordo con @MikeK. L'intera ragione per cui sto usando l'UDF e non una stored_procedure completa è per l'utilizzo in linea. La risposta a questa domanda è stata modificata nelle versioni più recenti di SQL Server? (ad esempio, 2016) – ColinMac