Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Xử lý lỗi trong các chức năng do người dùng xác định

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi thủ tục được lưu trữ với giá trị trả về

  2. SSRS - Giữ một bảng có cùng chiều rộng khi ẩn các cột động?

  3. Quyền truy cập của Android vào cơ sở dữ liệu SQL từ xa

  4. SQLServer - Làm cách nào để tìm các bảng phụ thuộc trên bảng của tôi?

  5. Mẫu Singleton cho ngữ cảnh dữ liệu