Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obsługa błędów w funkcjach zdefiniowanych przez użytkownika

Wygląda na to, że SQL Server UDF są nieco ograniczone w ten (i wiele innych) sposób.

Naprawdę nie możesz wiele z tym zrobić - tak (na razie) po prostu jest. Albo możesz zdefiniować swój UDF, aby móc zasygnalizować stan błędu za pomocą jego wartości zwracanej (np. zwracając NULL w przypadku błędu), albo wtedy prawie musiałbyś uciec się do napisania procedury składowanej, która może mieć o wiele więcej obsługi błędów i pozwala na RAISERROR i tak dalej.

Tak więc albo zaprojektuj swój UDF, aby nie wymagał określonego sygnalizowania warunków błędu, albo musisz zmienić architekturę podejścia do korzystania z procedur składowanych (które mogą mieć wiele parametrów WYJŚCIA, a zatem mogą również zwracać kod błędu wraz z ładunkiem danych, jeśli tego potrzebujesz) lub zarządzany kod CLR dla Twojego UDF.

Przepraszam, nie mam lepszego pomysłu - na razie obawiam się, że to są twoje opcje - wybierz swój wybór.

Marek



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Visual Studio:ContextSwitchDeadlock

  2. Poprawka:„Oświadczenie BACKUP LOG jest niedozwolone, gdy model odzyskiwania jest PROSTY” w SQL Server (i SQL Edge)

  3. replikacja między wydawcą offline a subskrybentem online?

  4. najnowsza (maksymalna) data dla każdego identyfikatora

  5. Nieprawidłowa składnia w pobliżu słowa kluczowego 'with'...poprzednia instrukcja musi być zakończona średnikiem