sql >> Database >  >> RDS >> Sqlserver

Foutafhandeling in door de gebruiker gedefinieerde functies

Het lijkt erop dat SQL Server UDF's op deze (en vele andere) manier een beetje beperkt zijn.

Je kunt er echt niet veel aan doen - dat is (voorlopig) gewoon zoals het is. Ofwel kunt u uw UDF zo definiëren dat u een foutconditie kunt signaleren door middel van de retourwaarde (bijv. NULL retourneren in het geval van een fout), of u zou in plaats daarvan bijna een opgeslagen procedure moeten schrijven, die kan hebben veel meer foutafhandeling en staat RAISERROR enzovoort toe.

Dus ofwel uw UDF zo ontwerpen dat er geen specifieke signalering van foutcondities nodig is, of u moet uw benadering opnieuw ontwerpen om opgeslagen procedures te gebruiken (die meerdere OUTPUT-parameters kunnen hebben en dus ook foutcode kunnen retourneren samen met uw gegevenslading, als u dat nodig hebt), of beheerde CLR-code voor uw UDF's.

Sorry, ik heb geen beter idee - voorlopig zijn dat, vrees ik, uw opties - maak uw keuze.

Marc



  1. Is er een Booleaans gegevenstype in Microsoft SQL Server zoals in MySQL?

  2. Mysql - Gegevens archiveren, welke oplossing te gebruiken?

  3. Fix Msg 512 "Subquery heeft meer dan 1 waarde geretourneerd" in SQL Server

  4. Kun je een veld in een MySQL-query splitsen/exploderen?