Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Обработка на грешки в дефинирани от потребителя функции

Изглежда, че UDF на SQL Server са малко ограничени по този (и по много други) начин.

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

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

Съжалявам, нямам по-добра идея - засега, страхувам се, това са вашите възможности - изберете.

Марк



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преброяване на броя на редовете, върнати от съхранена процедура

  2. SQL няма да вмъкне нулеви стойности с BULK INSERT

  3. как да откриете изчакване на sql сървъра от .NET приложение, без да използвате catch Exception

  4. SQL Server на Linux

  5. Изчислете текущото общо / текущото салдо