Изглежда, че UDF на SQL Server са малко ограничени по този (и по много други) начин.
Наистина не можете да направите много по въпроса - това е (засега) точно така. Или можете да дефинирате вашия UDF, така че да можете да сигнализирате за състояние на грешка чрез неговата върната стойност (напр. връщане на NULL в случай на грешка), или тогава почти ще трябва да прибегнете до писане на съхранена процедура вместо това, което може да има много повече обработка на грешки и позволява RAISERROR и така нататък.
Така че или проектирайте своя UDF така, че да не изисква специфично сигнализиране на условия за грешка, или тогава трябва да преархитектирате подхода си за използване на съхранени процедури (които могат да имат множество OUTPUT параметри и по този начин могат също да върнат код за грешка заедно с вашия полезен товар от данни, ако имате нужда от това) или управляван CLR код за вашите UDF.
Съжалявам, нямам по-добра идея - засега, страхувам се, това са вашите възможности - изберете.
Марк