Có vẻ như SQL Server UDF bị hạn chế một chút theo cách này (và nhiều cách khác).
Bạn thực sự không thể làm được nhiều điều về nó - đó là (hiện tại) chỉ là như vậy. Hoặc bạn có thể xác định UDF của mình để bạn có thể báo hiệu lại một điều kiện lỗi bằng giá trị trả về của nó (ví dụ:trả về NULL trong trường hợp có lỗi), hoặc sau đó bạn gần như phải viết một thủ tục được lưu trữ thay thế, có thể có xử lý lỗi nhiều hơn và cho phép RAISERROR, v.v.
Vì vậy, thiết kế UDF của bạn để không yêu cầu báo hiệu cụ thể về các điều kiện lỗi hoặc sau đó bạn phải kiến trúc lại phương pháp tiếp cận của mình để sử dụng các thủ tục được lưu trữ (có thể có nhiều tham số OUTPUT và do đó cũng có thể trả về mã lỗi cùng với tải dữ liệu của bạn, nếu bạn cần điều đó), hoặc mã CLR được quản lý cho UDF của bạn.
Xin lỗi, tôi không có ý tưởng nào tốt hơn - hiện tại, tôi e rằng, đó là những lựa chọn của bạn - hãy lựa chọn của bạn.
Marc