Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Gestion des erreurs dans les fonctions définies par l'utilisateur

Il semble que les UDF de SQL Server soient un peu limitées de cette manière (et de bien d'autres).

Vous ne pouvez vraiment pas y faire grand-chose - c'est (pour l'instant) comme ça. Soit vous pouvez définir votre UDF de manière à pouvoir signaler une condition d'erreur au moyen de sa valeur de retour (par exemple, renvoyer NULL en cas d'erreur), soit vous devrez presque recourir à l'écriture d'une procédure stockée à la place, ce qui peut avoir beaucoup plus de gestion des erreurs et permet RAISERROR et ainsi de suite.

Donc, soit concevez votre UDF pour ne pas nécessiter de signalisation spécifique des conditions d'erreur, soit vous devez réorganiser votre approche pour utiliser des procédures stockées (qui peuvent avoir plusieurs paramètres OUTPUT et peuvent donc également renvoyer un code d'erreur avec votre charge utile de données, si vous besoin), ou le code CLR géré pour vos UDF.

Désolé, je n'ai pas de meilleure idée - pour l'instant, j'ai peur, ce sont vos options - faites votre choix.

Marc